可调整大小的组合框

介绍 当我用ComboBox创建一个使用DataGrid的项目时,我希望获得一个可调整大小的ComboBox,将其高度设置为DataGrid单元格的高度。这是我创建一个可调整大小的组合框ActiveX的尝试,现在我可以改变它的高度。一些程序员使用表单,列表框,文本框和按钮来创建组合框,但我使用面板,组合框,文本框和按钮来创建我的ActiveX。 背景 我使用面板隐藏了上部的ComboBox和使用这个面板作为文本框和按钮的容器。 关于我的ActiveX项目: 隐藏,复制Code

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

在您展开文件之后:combo_c# .zip和Combo_VB。zip压缩后,您可以打开“SizableCombo”解决方案来读取“MKCombo”项目中的ActiveX代码,并读取代码来测试“SizableCombo”项目中的ActiveX。我试图使用'DataSource'绑定我的ActiveX与数据,但我不能,然后我使用另一个想法。 我的ActiveX: 隐藏,复制Code

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.

使用的代码 代码绑定ActiveX与数据: 隐藏,复制Code

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;
} 

VB代码绑定的ActiveX与数据: 隐藏,复制Code

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

备注 当执行测试项目时,请调整任何行大小,以查看组合框如何更改其高度。 最后的话 我希望这篇文章是有用的。如果你有什么想法,请告诉我。感谢CodeProject和所有人。 Mostafa Kaisoun m_kaisoun@hotmail.com  历史 2011年2月21日:初始版本 本文转载于:http://www.diyabc.com/frontweb/news288.html

posted @ 2020-08-05 03:54  Dincat  阅读(288)  评论(0编辑  收藏  举报