c#winform
我已经阅读了多篇关于如何做到这一点的文章/建议,以下是我尝试过的少数文章之一,但它没有用。事实上,当用户输入文本框时,没有任何反应。
private void OperationListForm_Load(object sender, EventArgs e)
{
AutoCompleteStringCollection textBoxCollection = new AutoCompleteStringCollection();
foreach (var item in _oiList) //_oiList is a list of objects
{
textBoxCollection.Add(item.ToString());
}
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.AutoCompleteCustomSource = textBoxCollection;
}
我是新的,如果我需要提供更多信息,请告诉我。
答案 0 :(得分:2)
您需要仔细检查的一些事项:
我测试了你的代码,它对我有用。这就是我要检查的内容:
将以下代码添加到Form1.cs:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitTextBox();
}
void InitTextBox()
{
AutoCompleteStringCollection textBoxCollection = new AutoCompleteStringCollection();
textBoxCollection.Add("Bobby");
textBoxCollection.Add("Billy");
textBoxCollection.Add("Britney");
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.AutoCompleteCustomSource = textBoxCollection;
}
}
这是这个工作的截图:
答案 1 :(得分:0)
首先,您必须创建数组并将其添加到AutoCompleteStringCollection
,然后将其设置为数据源。你可以像我的样品一样,它的工作。您的问题与您尝试添加的datasource
有关。它是你无法做到的对象列表。
AutoCompleteStringCollection stringCollection = new AutoCompleteStringCollection();
String[] yourArray = new[] {"Cat", "Car", "Dog", "Dinner", "War", "White"};
stringCollection.AddRange(yourArray);
textBox1.AutoCompleteCustomSource = stringCollection;
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;