可调整大小的组合框






4.75/5 (8投票s)
可调整大小的组合框
引言
当我创建一个使用 DataGrid
和 ComboBox
的项目时,我希望获得一个可调整大小的 ComboBox
,以便将其 Height
设置为 DataGrid
单元格的 Height
。 这是我尝试创建可调整大小的 ComboBox
ActiveX 的过程,现在我可以更改它的 Height
。 一些程序员使用 Form
、ListBox
、TextBox
和 Button
来创建 ComboBox
,但我使用 Panel
、ComboBox
、TextBox
和 Button
来创建我的 ActiveX。
背景
我使用 Panel
来隐藏 ComboBox
的上部,并将此 Panel
作为 TextBox
和 Button
的容器。
关于我的 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
解压 Combo_C#.zip 和 Combo_VB.zip 文件后,您可以打开 'SizableCombo
' 解决方案来阅读 'MKCombo
' 项目中的 ActiveX 代码,并在 'SizableCombo
' 项目中阅读代码以测试 ActiveX。 我尝试使用 'DataSource
' 将我的 ActiveX 与数据绑定,但没有成功,然后我使用了另一种方法。
我的 ActiveX 具有
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# 代码用于将 ActiveX 与数据绑定
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 与数据绑定
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
备注
执行测试项目时,请调整任何行的大小,以查看 ComboBox
如何更改其 Height
。
结束语
我希望这篇文章对您有所帮助。 如果您有任何想法,请告诉我。 感谢 CodeProject,感谢大家。
Mostafa Kaisoun
m_kaisoun@hotmail.com
历史
- 2011 年 2 月 21 日:初始版本