如何从数据集 table 创建文本框 autoCompleteSource?

How do I create a textBox autoCompleteSource from dataset table?

在我的 Winform 中,我有一个文本框。我将其设置为 "AutoComplete",并且我想知道在我的代码 (c#) 中编写什么,以便将其 "AutoCompleteSource" 设置为数据集中 table 中某些列的值。 谢谢!

使用此 post:

填充数据源
Source = dt.AsEnumerable().Select<System.Data.DataRow, String>(x => x.Field<String>("Name")).ToArray();

这会向您推荐

textbox.AutoCompleteCustomSource = source;
textbox.AutoCompleteMode = AutoCompleteMode.Suggest;
textbox.AutoCompleteSource = AutoCompleteSource.CustomSource;

假设您在 table 变量中有一个数据 table,然后要将其列列表显示为自动完成源,您可以使用如下代码:

var columns = table.Columns.Cast<DataColumn>();
var source = new AutoCompleteStringCollection();
source.AddRange(columns.Select(x => x.ColumnName).ToArray());
textBox1.AutoCompleteCustomSource = source;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

但是,使用 ComboBox 更有意义。要查看 ComboBox 的示例,请查看 .

代码中:

var rows = table.Rows.Cast<DataRow>();
var source = new AutoCompleteStringCollection();
source.AddRange(rows.Select(x => x.Field<String>("ColumnName")).ToArray());
textBox.AutoCompleteCustomSource = source;
textBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

只需替换 tabletextBox"ColumnName"