Type | Description | |||
Object as Object | An object created by UserEditor property. | |||
Ev as OleEvent | An OleEvent object that holds information about the event | |||
CloseEditor as Boolean | (By Reference) A boolean expression that indicates whether the control should close the user editor. | |||
Node as Node | A Node object where the ActiveX editor is opened. |
private void UserEditorOleEvent(object sender,object Obj,exontrol.EXMLGRIDLib.OleEvent Ev,ref bool CloseEditor,exontrol.EXMLGRIDLib.Node Node) { } Private Sub UserEditorOleEvent(ByVal sender As System.Object,ByVal Obj As Object,ByVal Ev As exontrol.EXMLGRIDLib.OleEvent,ByRef CloseEditor As Boolean,ByVal Node As exontrol.EXMLGRIDLib.Node) Handles UserEditorOleEvent End Sub |
private void UserEditorOleEvent(object sender, AxEXMLGRIDLib._IXMLGridEvents_UserEditorOleEventEvent e) { } void OnUserEditorOleEvent(LPDISPATCH Object,LPDISPATCH Ev,BOOL FAR* CloseEditor,LPDISPATCH Node) { } void __fastcall UserEditorOleEvent(TObject *Sender,IDispatch *Object,Exmlgridlib_tlb::IOleEvent *Ev,VARIANT_BOOL * CloseEditor,Exmlgridlib_tlb::INode *Node) { } procedure UserEditorOleEvent(ASender: TObject; Object : IDispatch;Ev : IOleEvent;var CloseEditor : WordBool;Node : INode); begin end; procedure UserEditorOleEvent(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_UserEditorOleEventEvent); begin end; begin event UserEditorOleEvent(oleobject Object,oleobject Ev,boolean CloseEditor,oleobject Node) end event UserEditorOleEvent Private Sub UserEditorOleEvent(ByVal sender As System.Object, ByVal e As AxEXMLGRIDLib._IXMLGridEvents_UserEditorOleEventEvent) Handles UserEditorOleEvent End Sub Private Sub UserEditorOleEvent(ByVal Object As Object,ByVal Ev As EXMLGRIDLibCtl.IOleEvent,CloseEditor As Boolean,ByVal Node As EXMLGRIDLibCtl.INode) End Sub Private Sub UserEditorOleEvent(ByVal Object As Object,ByVal Ev As Object,CloseEditor As Boolean,ByVal Node As Object) End Sub LPARAMETERS Object,Ev,CloseEditor,Node PROCEDURE OnUserEditorOleEvent(oXMLGrid,Object,Ev,CloseEditor,Node) RETURN |
<SCRIPT EVENT="UserEditorOleEvent(Object,Ev,CloseEditor,Node)" LANGUAGE="JScript"> </SCRIPT> <SCRIPT LANGUAGE="VBScript"> Function UserEditorOleEvent(Object,Ev,CloseEditor,Node) End Function </SCRIPT> Procedure OnComUserEditorOleEvent Variant llObject Variant llEv Boolean llCloseEditor Variant llNode Forward Send OnComUserEditorOleEvent llObject llEv llCloseEditor llNode End_Procedure METHOD OCX_UserEditorOleEvent(Object,Ev,CloseEditor,Node) CLASS MainDialog RETURN NIL void onEvent_UserEditorOleEvent(COM _Object,COM _Ev,COMVariant /*bool*/ _CloseEditor,COM _Node) { } function UserEditorOleEvent as v (Object as P,Ev as OLE::Exontrol.XMLGrid.1::IOleEvent,CloseEditor as L,Node as OLE::Exontrol.XMLGrid.1::INode) end function function nativeObject_UserEditorOleEvent(Object,Ev,CloseEditor,Node) return |
The following VB sample closes the Exontrol's ExComboBox user editor when the user selects a new value, or when it presses the Escape key. Also the sample changes the value of the node in the ExComboBox control:
Private Sub XMLGrid1_UserEditorOleEvent(ByVal Object As Object, ByVal Ev As EXMLGRIDLibCtl.IOleEvent, CloseEditor As Boolean, ByVal Node As EXMLGRIDLibCtl.INode) If (Ev.Name = "Change") Then Node.Value = Object.Select(0) CloseEditor = True End If If (Ev.Name = "KeyPress") Then Dim l As Long l = Ev(0).Value If l = vbKeyEscape Then CloseEditor = True End If End If End Sub
the sample requires an ActiveX editor ( in our case the Exontrol's ExComboBox control ):
With XMLGrid1.Editors With .Add("excombobox", UserEditorType) .UserEditor "Exontrol.ComboBox", "" With .UserEditorObject .BeginUpdate .LabelHeight = XMLGrid1.NodeHeight - 3 .LinesAtRoot = True .HeightList = 256 .WidthList = 256 .IntegralHeight = True .Columns.Add ("Name") .Columns.Add ("Value") .ColumnAutoResize = True With .Items Dim h As Long, h1 As Long h = .AddItem("Item 1") .CellCaption(h, 1) = "Item 1.2" h1 = .InsertItem(h, , "SubItem 1") .CellCaption(h1, 1) = "SubItem 1.2" h1 = .InsertItem(h, , "SubItem 2") .CellCaption(h1, 1) = "SubItem 2.2" .ExpandItem(h) = True End With .EndUpdate End With End With End With
The following C++ sample closes the Exontrol's ExComboBox user editor when the user selects a new value, or when it presses the Escape key. Also the sample changes the value of the node in the ExComboBox control:
#import <exmlgrid.dll> #import <excombobox.dll> void OnUserEditorOleEventXmlgrid1(LPDISPATCH Object, LPDISPATCH Ev, BOOL FAR* CloseEditor, LPDISPATCH Node) { EXMLGRIDLib::IOleEventPtr spEvent = Ev; EXCOMBOBOXLib::IComboBoxPtr spComboBox = Object; if ( spComboBox != NULL ) if ( spEvent != NULL ) { if ( spEvent->Name.operator ==( "Change" ) ) { CNode node( Node ); node.SetValue( spComboBox->GetSelect( COleVariant( (long)0 ) ) ); *CloseEditor = TRUE; } else if ( spEvent->Name.operator ==( "KeyPress" ) ) { // gets the KeyCode parameter EXMLGRIDLib::IOleEventParamPtr spParam; if ( SUCCEEDED( spEvent->get_Param( COleVariant( (long)0 ), &spParam ) ) ) { COleVariant vtI4; vtI4.ChangeType( VT_I4, &spParam->Value ); if ( V_I4( &vtI4) == VK_ESCAPE ) *CloseEditor = TRUE; } } } }
the sample requires an ActiveX editor ( in our case the Exontrol's ExComboBox control ), so we need to call the #import <excombobox.dll> in order to include definitions for objects and types in the ExComboBox control. The #import <excombobox.dll> creates EXCOMBOBOXLib namespace that includes all definitions for objects and types that the ExComboBox control exports.
#include "Editor.h" #include "Editors.h" COleVariant vtMissing; V_VT( &vtMissing ) = VT_ERROR; CEditors editors = m_xmlgrid.GetEditors(); CEditor editor = editors.Add( COleVariant( "excombobox" ), 16 /*UserEditorType*/ ); editor.UserEditor( "Exontrol.ComboBox", "" ); EXCOMBOBOXLib::IComboBoxPtr spComboBox = editor.GetUserEditorObject(); if ( spComboBox != NULL ) { spComboBox->BeginUpdate(); spComboBox->LabelHeight = m_xmlgrid.GetNodeHeight() - 3; spComboBox->LinesAtRoot = EXCOMBOBOXLib::exLinesAtRoot; spComboBox->put_HeightList( vtMissing, 256 ); spComboBox->put_WidthList( vtMissing, 256 ); spComboBox->IntegralHeight = true; spComboBox->Columns->Add("Name"); spComboBox->Columns->Add("Value"); spComboBox->ColumnAutoResize = true; EXCOMBOBOXLib::IItemsPtr spItems = spComboBox->Items; long h = spItems->AddItem(COleVariant( "Item 1" )); spItems->put_CellCaption(COleVariant(h),COleVariant((long)1), COleVariant( "Item 1.2" ) ); long h1 = spItems->InsertItem(h, vtMissing, COleVariant( "SubItem 1") ); spItems->put_CellCaption(COleVariant(h1),COleVariant((long)1), COleVariant( "SubItem 1.2" ) ); h1 = spItems->InsertItem(h, vtMissing, COleVariant( "SubItem 2") ); spItems->put_CellCaption(COleVariant(h1),COleVariant((long)1), COleVariant( "SubItem 2.2" ) ); spItems->put_ExpandItem(h, true ); spComboBox->EndUpdate(); }
The following VB.NET sample closes the Exontrol's ExComboBox user editor when the user selects a new value, or when it presses the Escape key. Also the sample changes the value of the node in the ExComboBox control:
Private Sub AxXMLGrid1_UserEditorOleEvent(ByVal sender As Object, ByVal e As AxEXMLGRIDLib._IXMLGridEvents_UserEditorOleEventEvent) Handles AxXMLGrid1.UserEditorOleEvent If (e.ev.Name = "Change") Then e.node.Value = e.object.Select(0) e.closeEditor = True End If If (e.ev.Name = "KeyPress") Then Dim l As Integer = e.ev(0).Value If l = Keys.Escape Then e.closeEditor = True End If End If End Sub
the sample requires an ActiveX editor ( in our case the Exontrol's ExComboBox control ):
With AxXMLGrid1.Editors With .Add("excombobox", EXMLGRIDLib.EditTypeEnum.UserEditorType) .UserEditor("Exontrol.ComboBox", "") With .UserEditorObject .BeginUpdate() .LabelHeight = AxXMLGrid1.NodeHeight - 3 .LinesAtRoot = True .HeightList = 256 .WidthList = 256 .IntegralHeight = True .Columns.Add("Name") .Columns.Add("Value") .ColumnAutoResize = True With .Items Dim h, h1 As Integer h = .AddItem("Item 1") .CellCaption(h, 1) = "Item 1.2" h1 = .InsertItem(h, , "SubItem 1") .CellCaption(h1, 1) = "SubItem 1.2" h1 = .InsertItem(h, , "SubItem 2") .CellCaption(h1, 1) = "SubItem 2.2" .ExpandItem(h) = True End With .EndUpdate() End With End With End With
The following C# sample closes the Exontrol's ExComboBox user editor when the user selects a new value, or when it presses the Escape key. Also the sample changes the value of the node in the ExComboBox control:
private void axXMLGrid1_UserEditorOleEvent(object sender, AxEXMLGRIDLib._IXMLGridEvents_UserEditorOleEventEvent e) { if (e.ev.Name == "Change") { EXCOMBOBOXLib.ComboBox comboBox = e.@object as EXCOMBOBOXLib.ComboBox; if ( comboBox != null ) e.node.Value = comboBox.get_Select(0); e.closeEditor = true; } else if (e.ev.Name == "KeyPress") { if (Convert.ToInt16(e.ev[0].Value) == Convert.ToInt16(Keys.Escape)) e.closeEditor = true; } }
the sample requires an ActiveX editor ( in our case the Exontrol's ExComboBox control ):
EXMLGRIDLib.Editor editor = axXMLGrid1.Editors.Add("excombobox", EXMLGRIDLib.EditTypeEnum.UserEditorType); editor.UserEditor("Exontrol.ComboBox", ""); EXCOMBOBOXLib.ComboBox comboBox = editor.UserEditorObject as EXCOMBOBOXLib.ComboBox; if ( comboBox != null ) { comboBox.BeginUpdate(); comboBox.LabelHeight = axXMLGrid1.NodeHeight - 3; comboBox.LinesAtRoot = EXCOMBOBOXLib.LinesAtRootEnum.exLinesAtRoot ; comboBox.set_HeightList( null, 256 ); comboBox.set_WidthList( null, 256 ); comboBox.IntegralHeight = true; comboBox.Columns.Add("Name"); comboBox.Columns.Add("Value"); comboBox.ColumnAutoResize = true; EXCOMBOBOXLib.Items items = comboBox.Items; int h = items.AddItem("Item 1"); items.set_CellCaption(h, 1, "Item 1.2" ); int h1 = items.InsertItem(h, null, "SubItem 1"); items.set_CellCaption(h1, 1,"SubItem 1.2"); h1 = items.InsertItem(h, null, "SubItem 2"); items.set_CellCaption(h1, 1,"SubItem 2.2"); items.set_ExpandItem(h, true); comboBox.EndUpdate(); }
In C# your project needs a new reference to the Exontrol's ExComboBox control library. Use the Project\Add Reference\COM item to add new reference to a COM object. Once that you added a reference to the Exontrol's ExComboBox the EXCOMBOBOXLib namespace is created. The EXCOMBOBOXLib namespace contains definitions for all objects that ExComboBox control exports.
The following VFP sample closes the Exontrol's ExComboBox user editor when the user selects a new value, or when it presses the Escape key. Also the sample changes the value of the node in the ExComboBox control:
*** ActiveX Control Event *** LPARAMETERS object, ev, closeeditor, node If (ev.Name = "Change") Then node.Value = object.Select(0) closeeditor = .t. else If (ev.Name = "KeyPress") Then local l l = Ev(0).Value If l = 27 Then closeeditor = .t. EndIf EndIf EndIf
the sample requires an ActiveX editor ( in our case the Exontrol's ExComboBox control ):
With thisform.XMLGrid1.Editors With .Add("excombobox", 16) && UserEditorType .UserEditor("Exontrol.ComboBox", "") With .UserEditorObject .BeginUpdate .LabelHeight = thisform.XMLGrid1.NodeHeight - 3 .LinesAtRoot = -1 .HeightList(0) = 256 .WidthList(0) =256 .IntegralHeight = .t. .Columns.Add ("Name") .Columns.Add ("Value") .ColumnAutoResize = .t. With .Items .DefaultItem = .AddItem("Item 1") h = .DefaultItem .CellCaption(0, 1) = "Item 1.2" .DefaultItem = .InsertItem(h, , "SubItem 1") .CellCaption(0, 1) = "SubItem 1.2" .DefaultItem = .InsertItem(h, , "SubItem 2") .CellCaption(0, 1) = "SubItem 2.2" .DefaultItem = h .ExpandItem(0) = .t. EndWith .EndUpdate EndWith EndWith EndWith