我有一个文本框,在它下面我有一个列表框。
当用户在文本框中输入时,如果他按下向上或向下箭头,他应该在列表框中进行选择。文本框检测到所有字符(空格除外),但似乎无法检测箭头按下。
任何解决方案?这是一个WPF项目btw。
编辑,感谢T.Kiley,这是工作代码:
private void searchBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.IsDown && e.Key == Key.Down)
{
e.Handled = true;
//do your action here
}
if (e.IsDown && e.Key == Key.Up)
{
e.Handled = true;
//do another action here
}
}
答案 0 :(得分:3)
我刚试过这个并且它有效。将预览键向下事件添加到文本框
private void TextBox_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.IsDown && e.Key == Key.Down)
MessageBox.Show("It works");
}
答案 1 :(得分:-1)
您可以收听TextBox的KeyDown事件。在处理程序中,检查是否按下了箭头键(如果用户按住按钮太长时间,您可能需要按键以避免多次触发代码)。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
// Do some code...
}
}