1

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

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

Key.Down当用户按下箭头键时,我尝试使用事件,但这不起作用。

4

2 回答 2

1

这应该工作..

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

曾经也看看这个link。[不知何故相关]

于 2012-11-27T12:13:49.063 回答
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 .. 希望它会 YouHelp

于 2013-07-04T16:32:41.310 回答