Combobox有多个列
场景:我正在将应用程序从访问C#移动到其中一个表单(访问中),用户可以选择具有3列(ID,FirstName,LastName)的下拉列表。 一旦他们从列表中选择,ID就会显示在下拉列表中。
问题:是否可以使用combobox重新创建此function? 您能提出哪些替代方案?
编辑:
alt text http://sofzh.miximages.com/c%23/www.freeimagehosting.net
下拉列表位于左上方,旁边有一个文本框,使用下拉列表最后两列的名称
编辑2:
由于多列不可行,有没有办法指定多个显示成员显示在下拉列表上? 例如:ID – FirstName LastName
目前,正在使用这些属性将员工对象添加到下拉列表中。 我尝试将显示成员设置为
cmbEmp.DisplayMember ="EmployeeID " + "FirstName " + "LastName";
但事实并非如此。 我是否应该使用employee对象进行废弃,只是进行SQL调用以获取连接在一起的那些? 我试图重用一些代码(我在完成它的过程中得到了这个项目),但它可能不可行。
实现此目的的常用方法是覆盖onDropDown事件以绘制具有多个值的自己的下拉窗口。 从演练到可下载的控件,有很多例子。 这里有几个:
- http://www.codeguru.com/cpp/controls/combobox/multicolumncombos/article.php/c1825/
- http://www.codeproject.com/KB/combobox/multicolumncombo.aspx
- http://www.codeproject.com/KB/combobox/Multicolumn_ComboBox.aspx
- http://www2.syncfusion.com/library/classref/Syncfusion.Windows.Forms.Tools.MultiColumnComboBox.html
- http://www.brothersoft.com/downloads/multicolumn-combobox.html
- http://www.edneeis.com/control.aspx?ID=7
从您的图像combobox不直接具有该function,但我已经看到自定义第三方控件执行它。 如果我能找到一个名字,我会更新。
我使用的软件有许可证http://www.active-x.com/ActiveX/APEX_Software_Corporation/True_DBList_Pro_5_0/但是这个程序是在VB5时代编写的(我不确定是否存在进行控制的公司)。 我建议尝试找到类似但更新的东西。