ARTICLE

Using New ComboBox ActiveX With C#

Posted by Mostafa Kaisoun Articles | Windows Forms C# November 19, 2012
This is my attempt to create a resizable ComboBox ActiveX to set its height to the height of a DataGrid cell.
Reader Level:
Download Files:
 

Introduction

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

Using-new-ComboBox-ActiveX-with-Csharp.jpg

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: ComboC.zip, 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, so 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.

About the Code

Code to bind the ActiveX with data:

public void cmbBindData(string cmbSql, OleDbConnection cmbCnn, string cmbField)
{
    if (cmbCnn.State == ConnectionState.Open)
        cmbCnn.Close();
    cmbCnn.Open();
    OleDbCommand cmdReader = new OleDbCommand(cmbSql, cmbCnn);
    OleDbDataReader datRdr = cmdReader.ExecuteReader();
    ComboCtrl.Items.Clear();
    while (datRdr.Read())
    {
        ComboCtrl.Items.Add(datRdr[cmbField]);
    }
    ComboCtrl.SelectedIndex = 0;
}

Remark

When the test project is executed, please resize any row to see how the ComboBox changes its height.

I hope this article is useful. If you have any idea, please tell me.
 

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
Over-C is a holistic consortium of communications and technology specialists. We build, deploy and market both business as well as consumer products and solutions.
Join a Chapter
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.