我在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
事件。
答案 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 ..希望它会帮助你