自动完成文本框winforms
答
首先创建AutoCompleteStringCollection
使用数组添加自己的建议。将此集合设置为文本框AutoCompleteCustomSource
。使用此示例。您也可以使用TextChanged
事件并从Db中获取集合,例如text.StartWith(“textBoxValue”)。
使用AutoCompleteCustomSource,AutoCompleteMode和AutoCompleteSource属性来创建一个文本框通过比较前缀被输入到在保持source.This所有字符串的前缀自动完成的输入字符串为文本框控件有用,其中网址,地址,文件名或命令将经常输入。
这里MSDN doc
AutoCompleteStringCollection autoCollection= new AutoCompleteStringCollection();
private void Form1_Load(object sender, EventArgs e)
{
textBox1.AutoCompleteCustomSource = autoCollection;
txtBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
txtBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Lenght > 2)
{
autoCollection = yourCollectionFromDB(textBox1.Text)
txtBox1.AutoCompleteCustomSource = autoCollection;
}
}
肯定的,但在这种情况下,我必须加载在我的程序开始的所有数据,并填补了数组。但我的意思是加载结果表明动态性。例如:用户开始键入并从数据库中仅选择10个顶部行。可能吗? – user1912372