property Editor.EditType as EditTypeEnum
Retrieves or sets a value that indicates the type of the editor.

TypeDescription
EditTypeEnum An EditTypeEnum expression that specifies the type of the editor.
Use the EditType property to set the editor's type. Use the Add method to specify the editor's type when adding the editor to the control. The EditType property is set when using the DataSource property according to the record set field's type.  For instance, if we have a record set field of date type, the EditType property is set to DateType. Use the UserEditor method to specify the program identifier when EditType property is UserEditorType.  Use the UserEditorObject property to access the inner ActiveX control when EditType property is UserEditorType. Use the Value property to specify the editor's value. Use the Option property to define options for a specific type of editor. Use the AddItem and InsertItem methods to add new items to the drop down portion of the editor. Use the AddButton method to add new buttons to the editor.

The following VB sample adds an editor of drop down list type:

 

With Record1
    .BeginUpdate
    .BackColor = vbWhite
    .LabelSize = 80
    .Images "gBJJgBAICAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwkQsuGQGJwl1w2Nh8Tf8ux9IwzAy2QAGWYGZy+JQGLwOTpeazGVy+k1GdxWgr2GlGP0mvyMbx2zx+unemze6jOf3sZ1Ob1ld3EZ4vG2cazwA5e1zE80nO2O+6fAy/DrHO2XK2WR53LifPm/R2GX3nL6uc4XYq3ajWIxWu2/z72P5uim286Wn6++5jrM28D2Ka5zjvA+jSsnBD4P8/MFwe+rIuC9UKQHAkILC8jIuXDjFPvCMKNjCypwLDD3KM0kPwTEEOs+3kRq3EsQKhFTvvjBEVRgsUTqjHj9s3EUdSFIciSLIaLB8lcko8kCRJIACSpRKKcOPIyYIojZ5nefjkgAeBnngH6NnAB8yTGAJwAOjZgTRNSNTZNKNkAAJgTc3s6AHKRgTyjc8TkD89zGH5wT4jJ8B+eFCgAfw/nyB7aOKgI"
    With .Add("DropDownList", EXRECORDLibCtl.DropDownListType)
        .DropDownAutoWidth = False
        .AddItem 0, "Root 1", 1
        .InsertItem 1, "Child 1", 2, 0
        .InsertItem 2, "Child 2", 2, 0
        .AddItem 3, "Root 2", 1
        .InsertItem 4, "Child 1", 2, 3
        .InsertItem 5, "Child 2", 2, 3
        .ExpandAll
    End With
    .EndUpdate
End With

The following VC sample adds an editor of drop down list type:

COleVariant vtMissing; vtMissing.vt = VT_ERROR;
m_record.Images(COleVariant("gBJJgBAICAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwkQsuGQGJwl1w2Nh8Tf8ux9IwzAy2QAGWYGZy+JQGLwOTpeazGVy+k1GdxWgr2GlGP0mvyMbx2zx+unemze6jOf3sZ1Ob1ld3EZ4vG2cazwA5e1zE80nO2O+6fAy/DrHO2XK2WR53LifPm/R2GX3nL6uc4XYq3ajWIxWu2/z72P5uim286Wn6++5jrM28D2Ka5zjvA+jSsnBD4P8/MFwe+rIuC9UKQHAkILC8jIuXDjFPvCMKNjCypwLDD3KM0kPwTEEOs+3kRq3EsQKhFTvvjBEVRgsUTqjHj9s3EUdSFIciSLIaLB8lcko8kCRJIACSpRKKcOPIyYIojZ5nefjkgAeBnngH6NnAB8yTGAJwAOjZgTRNSNTZNKNkAAJgTc3s6AHKRgTyjc8TkD89zGH5wT4jJ8B+eFCgAfw/nyB7aOKgI"));
CEditor editor = m_record.Add(COleVariant("DropDownList"), /*DropDownListType*/ 3, vtMissing );
editor.SetDropDownAutoWidth( FALSE );
editor.AddItem( 0, "Root 1", COleVariant((long)1)  );
editor.InsertItem(1, "Child 1", COleVariant((long)2), COleVariant( long(0) ) );
editor.InsertItem(2, "Child 2", COleVariant((long)2), COleVariant( long(0) ) );
editor.AddItem( 3, "Root 2", COleVariant((long)1)  );
editor.InsertItem(4, "Child 1", COleVariant((long)2), COleVariant( long(3) ) );
editor.InsertItem(5, "Child 2", COleVariant((long)2), COleVariant( long(3) ) );
editor.ExpandAll();
m_record.Refresh();

The following VC sample adds an Exontrol.ComboBox ActiveX control:

#import "c:\winnt\system32\ExComboBox.dll"
#import "c:\winnt\system32\ExRecord.dll"

BOOL sInstalled(BSTR strProgID)
{
	CLSID clsid = CLSID_NULL;
	HRESULT hResult = E_POINTER;
	if (SUCCEEDED( hResult = CLSIDFromProgID( strProgID, &clsid ) ))
	{
		IDispatch* pObject = NULL;
		if ( SUCCEEDED( hResult = CoCreateInstance( clsid, NULL, CLSCTX_ALL, IID_IDispatch, reinterpret_cast(&pObject) ) ) )
		{
			pObject->Release();
			return TRUE;
		}
	}
	return FALSE;
}

#define v(x) _variant_t( x )

	CString strObject( "Exontrol.ComboBox" );
	COleVariant vtMissing; vtMissing.vt = VT_ERROR;
	m_record.BeginUpdate();
	m_record.SetLabelSize( 110 );
	CEditor editor = m_record.Add( COleVariant( "ActiveX" ), EXRECORDLib::UserEditorType, vtMissing );
	editor.SetPosition( 2 );
	if ( !isInstalled( strObject.AllocSysString() ) )
	{
		CString strFormat;
		strFormat.Format( "\"%s\" is not installed.", (LPCSTR)strObject );
		editor.SetValue( COleVariant( strFormat ) );
		editor.SetForeColor( RGB( 255, 0, 0 ) );
	}
	else
	{
		// Creates the exComboBox control. https://www.exontrol.com/excombobox.jsp
		editor.UserEditor( strObject, "" );
		if ( EXCOMBOBOXLib::IComboBoxPtr spComboBox = editor.GetUserEditorObject() )
		{
			spComboBox->BeginUpdate();
			spComboBox->BackColorEdit = GetSysColor( COLOR_MENU );
			spComboBox->IntegralHeight = true;
			spComboBox->ColumnAutoResize = true;
			spComboBox->LinesAtRoot = EXCOMBOBOXLib::exLinesAtRoot;
			spComboBox->MinHeightList = 164;
			spComboBox->MinWidthList = 264;
			spComboBox->MarkSearchColumn = false;
			spComboBox->DrawGridLines = EXCOMBOBOXLib::exAllLines;
			spComboBox->FilterBarDropDownHeight = -150;
			spComboBox->Alignment = EXCOMBOBOXLib::RightAlignment;
			EXCOMBOBOXLib::IColumnsPtr spColumns = spComboBox->Columns;
			spColumns->Add("Column 1");
            spColumns->Add("Column 2");
            EXCOMBOBOXLib::IColumnPtr spColumn = spColumns->Add("Column 3");
			spColumn->DisplayFilterButton = true;
			EXCOMBOBOXLib::IItemsPtr spItems = spComboBox->Items;
			long h = spItems->AddItem( v( "Root 1" ) );
			spItems->CellCaption[v(h)][v((long)1)] = v("SubChild 1");
			spItems->CellCaption[v(h)][v((long)2)] = v("SubChild 2");
			long h1 = spItems->InsertItem( h, vtMissing, v( "Child 1" ) );
			spItems->CellCaption[v(h1)][v((long)1)] = v("SubChild 1.1");
			spItems->CellCaption[v(h1)][v((long)2)] = v("SubChild 1.2");
			spItems->CellHasCheckBox[v(h1)][v((long)0)] = true;
			spItems->CellMerge[v(h1)][v((long)0)] = v((long)1);
			h1 = spItems->InsertItem( h, vtMissing, v( "Child 2" ) );
			spItems->CellCaption[v(h1)][v((long)1)] = v("SubChild 2.1");
			spItems->CellCaption[v(h1)][v((long)2)] = v("SubChild 2.2");
			spItems->CellHasCheckBox[v(h1)][v((long)0)] = true;
			spItems->CellMerge[v(h1)][v((long)0)] = v((long)1);
			spItems->put_ExpandItem( h, TRUE );

			h = spItems->AddItem( v( "Root 2" ) );
			spItems->CellCaption[v(h)][v((long)1)] = v("SubChild 1");
			spItems->CellCaption[v(h)][v((long)2)] = v("SubChild 2");
			h1 = spItems->InsertItem( h, vtMissing, v( "Child 1" ) );
			spItems->CellCaption[v(h1)][v((long)1)] = v("SubChild 1.1");
			spItems->CellCaption[v(h1)][v((long)2)] = v("SubChild 1.2");
			spItems->CellHasCheckBox[v(h1)][v((long)0)] = true;
			spItems->CellMerge[v(h1)][v((long)0)] = v((long)1);
			h1 = spItems->InsertItem( h, vtMissing, v( "Child 2" ) );
			spItems->CellCaption[v(h1)][v((long)1)] = v("SubChild 2.1");
			spItems->CellCaption[v(h1)][v((long)2)] = v("SubChild 2.2");
			spItems->CellHasCheckBox[v(h1)][v((long)0)] = true;
			spItems->CellMerge[v(h1)][v((long)0)] = v((long)1);
			spItems->put_ExpandItem( h, TRUE );

			spComboBox->Value = "Root 1";
			spComboBox->EndUpdate();

		}
	}
	m_record.EndUpdate();

The following VB sample adds a Forms.ComboBox ActiveX control:

 With Record1
    .BeginUpdate
    With .Add("ActiveX", EXRECORDLibCtl.UserEditorType)
        .UserEditor "Forms.ComboBox.1", ""
        With .UserEditorObject()
            .AddItem "Item 1"
            .AddItem "Item 2"
        End With
    End With
    .EndUpdate
End With