Click here to Skip to main content
13,045,790 members (47,739 online)
Click here to Skip to main content
Add your own
alternative version


12 bookmarked
Posted 21 Feb 2011

Resizable ComboBox

, 21 Feb 2011
Rate this:
Please Sign up or sign in to vote.
Resizable ComboBox


When I create a project for using a DataGrid with ComboBox, I hope to get a resizable ComboBox to set its Height as the Height of DataGrid cell. This is my trial to create a resizable ComboBox ActiveX, now I can change its Height. Some programmers use Form, ListBox, TextBox and Button to create ComboBox, but I am using Panel, ComboBox, TextBox and Button to create my ActiveX.


I am using Panel to hide the upper part of ComboBox and using this Panel as container for TextBox and Button.

About the Project of my ActiveX:

Name of the Project is: MKCombo
Name of UserControl is: KCombo
Name of Panel is: ComboHide
Name of ComboBox is: ComboCtrl
Name of TextBox is: ComboText
Name of Button is: ComboButton

After you expand the files: and, you can open 'SizableCombo' solution to read the code of my ActiveX in the 'MKCombo' project and read the code to test the ActiveX in the 'SizableCombo' project. I try to use 'DataSource' to bind my ActiveX with data but I can't, then I use another idea.

My ActiveX has:

Event: cmbSelectedChanged for SelectedIndexChanged event.
Property: cmbBorderStyle for BorderStyle property.
Property: cmbSelectedIndex for SelectedIndex property.
Property: cmbSelectedItem for SelectedItem property.
Property: cmbText for Text property.
Property: cmbItemsCount for Items.Count property.
Method: cmbAddItem for Items.Add method.
Method: cmbClear for Items.Clear method.

Using the Code

C# code to bind the ActiveX with data:

public void cmbBindData(string cmbSql, OleDbConnection cmbCnn, string cmbField)
    if (cmbCnn.State == ConnectionState.Open)
    OleDbCommand cmdReader = new OleDbCommand(cmbSql, cmbCnn);
    OleDbDataReader datRdr = cmdReader.ExecuteReader(); 
    while (datRdr.Read())
    ComboCtrl.SelectedIndex = 0;

VB code to bind the ActiveX with data:

Public Sub cmbBindData(ByVal cmbSql As String, _
    ByVal cmbCnn As OleDbConnection, ByVal cmbField As String)
    If (cmbCnn.State = ConnectionState.Open) Then cmbCnn.Close()
    Dim cmdReader As OleDbCommand = New OleDbCommand(cmbSql, cmbCnn)
    Dim datRdr As OleDbDataReader = cmdReader.ExecuteReader()
    While (datRdr.Read())
    End While 
   ComboCtrl.SelectedIndex = 0
End Sub


When executing the test project, please resize any row to see how the ComboBox changes its Height.

Final Words

I hope this article is useful. If you have any ideas, please tell me. Thanks to CodeProject and thanks to all.

Mostafa Kaisoun 


  • 21st February, 2011: Initial version


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

No Biography provided

You may also be interested in...

Comments and Discussions

GeneralMy vote of 5 Pin
Kanasz Robert27-Sep-12 11:06
mvpKanasz Robert27-Sep-12 11:06 
GeneralRe: My vote of 5 Pin
Mostafa Kaisoun27-Sep-12 11:58
memberMostafa Kaisoun27-Sep-12 11:58 
GeneralMy vote of 5 Pin
manoj kumar choubey26-Mar-12 1:01
membermanoj kumar choubey26-Mar-12 1:01 
GeneralMy vote of 5 Pin
gorgias991-Mar-11 23:07
membergorgias991-Mar-11 23:07 
GeneralRe: My vote of 5 Pin
Mostafa Kaisoun18-Apr-11 11:38
memberMostafa Kaisoun18-Apr-11 11:38 
GeneralMy vote of 5 Pin
Monjurul Habib28-Feb-11 20:14
memberMonjurul Habib28-Feb-11 20:14 
GeneralRe: My vote of 5 Pin
Mostafa Kaisoun18-Apr-11 11:39
memberMostafa Kaisoun18-Apr-11 11:39 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170713.1 | Last Updated 22 Feb 2011
Article Copyright 2011 by Mostafa Kaisoun
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid