65.9K
CodeProject 正在变化。 阅读更多。
Home

自动完成多列组合框

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.88/5 (20投票s)

2005 年 10 月 6 日

1分钟阅读

viewsIcon

209974

downloadIcon

9502

这是我编写的一个自动完成多列 ComboBox 的版本。

Sample Image

引言

我见过一些其他的多列组合框和自动完成组合框,所以我决定提交这段代码,它同时实现了这两个功能。

背景

一段时间前,我需要将一个项目从 MS Access 迁移到 C#。在 Access 中,它使用了大量的带有列的组合框,如果这个功能发生任何更改,我们的客户将会非常困扰。因此,ColumnComboBox 诞生了。

使用代码

这个类可以像任何其他的 ComboBox 一样使用,除了 Items 应该使用 Data 属性来设置。这是一个 DataTableColumnComboBox 从中获取所有数据来填充下拉框。只需根据需要填充一个 DataTable,然后使用它设置 Data 属性即可。

//set the Data of the ColumnComboBox
myColumnComboBox.Data = myDataTable;

然后,您可以设置将作为组合框文本显示的列。

//set the ViewColumn
myColumnComboBox.ViewColumn = 2;

您可以像这样隐藏您不想在下拉框中显示的任何列

//Set a few columns to not be shown
myColumnComboBox.Columns[1].Display = false;
myColumnComboBox.Columns[3].Display = false;

还有一些其他的属性可以玩转,例如可以关闭自动完成功能(myColumnComboBox.Suggest = false;)或者一个索引器,用于获取当前行中列的值。

关注点

这段代码使用了一些辅助类,这些类包含在 ColumnComboBox 类下方或另一个包含的文件(StringList)中。ColumnComboBox 的源代码已注释,如果您想自己研究,可以查看。我个人会很高兴,如果 C# 中能够使用模板的话。

© . All rights reserved.