可调整大小的组合框
介绍 当我用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