C# 如何从数据集表创建文本框自动完成源?

C# 如何从数据集表创建文本框自动完成源?,c#,winforms,autocomplete,textbox,dataset,C#,Winforms,Autocomplete,Textbox,Dataset,在我的Winform中,我有一个文本框。我将其设置为“AutoComplete”,我想知道在我的代码(c#)中写什么,将其“AutoCompleteSource”设置为数据集中表中某列的值。 谢谢 使用此帖子填充数据源: Source = dt.AsEnumerable().Select<System.Data.DataRow, String>(x => x.Field<String>("Name")).ToArray(); 假设在table变量中有一个数据表,那

在我的Winform中,我有一个文本框。我将其设置为“AutoComplete”,我想知道在我的代码(c#)中写什么,将其“AutoCompleteSource”设置为数据集中表中某列的值。
谢谢

使用此帖子填充数据源:

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

假设在
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;
var columns=table.columns.Cast();
var source=new AutoCompleteStringCollection();
AddRange(columns.Select(x=>x.ColumnName.ToArray());
textBox1.AutoCompleteCustomSource=source;
textBox1.AutoCompleteSource=AutoCompleteSource.CustomSource;
textBox1.AutoCompleteMode=AutoCompleteMode.SuggestAppend;
但是,使用组合框更有意义。要查看组合框的示例,请查看代码中的。

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;
var rows=table.rows.Cast();
var source=new AutoCompleteStringCollection();
AddRange(rows.Select(x=>x.Field(“ColumnName”)).ToArray();
textBox.AutoCompleteCustomSource=source;
textBox.AutoCompleteSource=AutoCompleteSource.CustomSource;
textBox.AutoCompleteMode=AutoCompleteMode.SuggestAppend;

只需替换
文本框
列名
,两件事,1)select语句中不需要
。2) 您的文本框将显示
Name
列的所有值的列表,而OP希望它显示所有列名的列表。我确实需要这些值。数据源必须是特定列的值。在(“名称”)中输入您的列名,您将在源变量中获得特定列的值
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;