5

我有一个文本框,在它下面我有一个列表框。

当用户在文本框中输入时,如果他按下向上或向下箭头,他应该在列表框中进行选择。文本框检测到所有字符(空格除外),但似乎无法检测到箭头按下。

有什么解决办法吗?这是一个WPF项目顺便说一句。

编辑,这是感谢 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
        }
    }
4

2 回答 2

3

我刚试过这个,它有效。将预览按键按下事件添加到文本框

   private void TextBox_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
    {
        if (e.IsDown && e.Key == Key.Down)
            MessageBox.Show("It works");
    }
于 2013-04-28T14:33:15.143 回答
-1

你可以听他们TextBox的KeyDown事件。在处理程序中,检查箭头键是否被按下(如果用户按住按钮太久,您可能需要听 key up 以避免多次触发您的代码)。

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Down)
    {
        // Do some code... 
    }
}
于 2013-04-28T14:30:21.113 回答