C# - 如何覆盖文本框的“向上箭头”和“向下箭头”的操作?

时间:2013-04-28 14:25:57

标签: c# wpf

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

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

任何解决方案?这是一个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
        }
    }

2 个答案:

答案 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... 
    }
}