我有一个文本框,用户可以在其中输入搜索词,还有一个列表框用于显示结果。此外,还有一个按钮,点击后将显示根据所选项推断出的一些信息。
我想要通过上下箭头键来滚动列表框,以便用户不必单击该项,再单击按钮。这里,我需要使其更加“友好”,使用户只需使用键盘。以下代码可以工作,但存在一个小缺陷:
使用此代码后,光标仍会左右移动,而选择的项目也会相应地更改。 我希望它保持在原地(不强制将其移到最后)。 我没有在
虽然有一个
我是否缺少某些方法或忽视了一些使此TextBox / ListBox组合按照我的意图工作的方法?
快速说明:如果您曾经使用过UltraEdit,则我正在尝试模仿该配置窗口的行为。
我想要通过上下箭头键来滚动列表框,以便用户不必单击该项,再单击按钮。这里,我需要使其更加“友好”,使用户只需使用键盘。以下代码可以工作,但存在一个小缺陷:
private void txtSearchTerm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down && Results.SelectedIndex < (Results.Items.Count - 1))
{
Results.SelectedIndex++;
}
else if (e.KeyCode == Keys.Up && Results.SelectedIndex > 0)
{
Results.SelectedIndex--;
}
}
使用此代码后,光标仍会左右移动,而选择的项目也会相应地更改。 我希望它保持在原地(不强制将其移到最后)。 我没有在
txtSearchTerm.Select(...)
事件中找到任何有用的信息,但我猜我可能错过了什么......虽然有一个
TextChanged
事件,但它只调用一个我编写的搜索函数,该函数会在用户输入时填充列表框,因此出于简单起见,我将省略该代码。我是否缺少某些方法或忽视了一些使此TextBox / ListBox组合按照我的意图工作的方法?
快速说明:如果您曾经使用过UltraEdit,则我正在尝试模仿该配置窗口的行为。