TextBox AutoComplete未正确显示建议

时间:2012-11-27 11:59:17

标签: c# winforms visual-studio-2010

我在C#Windows窗体应用程序中使用了TextBox。我使用TextChanged()事件在TextBox中将建议用作用户类型。每次调用AutoCompleteResoure时,我都会动态创建TextChanged()。问题是:让我说我输入" j"在TextBox中它显示3个结果,第二个建议是我想去的地方。当我按下键盘上的向下箭头键转到第二个建议时,所有建议都被删除,TextBox中的文本被更改为第一个建议。这意味着我无法使用键盘低于第一个建议,因为当我按下向下键时,TextBox中的文本被建议替换,并且TextChanged()事件被调用,因此没有其他建议。 如何使用键盘查看所有建议? 我已将AutoCompeleteMode设为Suggest。 这是代码。

private void searchTb_TextChanged(object sender, EventArgs e){
     AutoCompleteStringCollection resource = new AutoCompleteStringCollection();
     string searchTerm = (sender as TextBox).Text;    
     searchTb.AutoCompleteCustomSource = getResource(searchTerm);
}

当用户按下箭头键但我没有工作时,我尝试使用Key.Down事件。

2 个答案:

答案 0 :(得分:1)

这应该有用..

//In KeyUp or Keypress or KeyDown Event
if keypress == DownArrow or UpArrow
  //Unhook TextChanged event
else
  //hook TextChanged event

也可以查看此link。 [以某种方式相关]

答案 1 :(得分:0)

不要使用TextChanged事件。它不应该在TextChanged事件中。您应该只分配一次...而是在Form_load中使用此代码

private void Form1_Load(object sender, EventArgs e)
{
     AutoCompleteStringCollection resource = new AutoCompleteStringCollection();
     string searchTerm = (sender as TextBox).Text;    
     searchTb.AutoCompleteCustomSource = getResource(searchTerm);
}

尝试tis ..希望它会帮助你