为什么自动完成建议未在textBox中更新
本文关键字:textBox 更新 为什么 | 更新日期: 2023-09-27 18:28:03
IDE:Visual Studio,Winforms,C#.net 4.0
我正在创建一个具有建议功能的文本框。问题是它用首字母给出建议,例如,假设源包含"你好用户",当用户键入"用户"时,它不会给出任何建议,为了处理这种情况,我写了以下代码:
private void Type2_Load(object sender, EventArgs e)
{
source = new List<string>();
source.Add("aaaaaa");
source.Add("bbbbbb");
source.Add("cccccc");
source.Add("aa");
source.Add("yogesshaaa");
source.Add("yogesh aaa");
BindTextBox(source);
}
private void BindTextBox(List<string> bindWith)
{
// txt.Invalidate();
ss = new AutoCompleteStringCollection();
txt.AutoCompleteCustomSource = null;
txt.AutoCompleteMode = AutoCompleteMode.None;
txt.AutoCompleteSource = AutoCompleteSource.None;
// ss.AddRange(bindWith.ToArray());
txt.AutoCompleteCustomSource = ss;
txt.AutoCompleteMode = AutoCompleteMode.Suggest;
txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
ss.AddRange(bindWith.ToArray());
}
private void txt_TextChanged(object sender, EventArgs e)
{
List<string> lstNewList = new List<string>();
foreach (string s in source)
{
if(s.Contains(txt.Text))
{
lstNewList.Add(s);
}
}
BindTextBox(lstNewList);
}
在txt_TextChanged
事件中,我正在创建一个newList,其中包含要在txtBox建议中建议的单词,我正在重新绑定该textBox,但它不会给我更新的建议。请告诉我如何解决这种情况。
我有一个自动填充的解决方案:
首先,您必须调用文本框中的ControlAdded事件:
private void tb_ControlAdded(object sender, ControlEventArgs e)
{
TextBox autoText = e.Control as TextBox;
if (autoText != null)
{
autoText.AutoCompleteMode = AutoCompleteMode.Suggest;
autoText.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection DataCollection = new AutoCompleteStringCollection();
addItems(DataCollection);
autoText.AutoCompleteCustomSource = DataCollection;
}
}
然后创建"addItems"方法如下:
public void addItems(AutoCompleteStringCollection col)
{
col.Add("Value 1");
col.Add("Value 2");
}
我希望这能解决你的问题。。。祝你今天愉快!