2010-08-17 52 views
0

我在wpf中的窗口中有组合框,我试图捕获此组合框的向下箭头键,但我无法这样做。以下是我对组合框唯一的代码。无法在wpf中捕获组合框中的向下箭头

<ComboBox Height="23" HorizontalAlignment="Left" Margin="10,10,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" 
       PreviewKeyDown="comboBox1_PreviewKeyDown" KeyDown="comboBox1_KeyDown" IsEditable="True"/> 

C#

private void comboBox1_PreviewKeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Down) 
      MessageBox.Show("hi"); 
    } 

    private void comboBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Down) 
      MessageBox.Show("hi"); 
    } 

事件当我按下向下箭头键甚至没有击中。

回答

2

尝试处理PreviewKeyUp(或KeyUp)。如果这不起作用,那么你的窗口或代码必须有更多(你是否处理这些事件的其他实例)?

+0

嗨Wonko PreviewKeyUp事件工作。但是,你能解释一下吗?PreviewKeyDown事件没有被解雇向下箭头键? – samar 2010-08-18 04:44:41

+0

我对此并不积极,但我认为它与PreviewKeyDown是一个隧道事件有关。通过使ComboBox可编辑,我相信成为ComboBox的ControlTemplate一部分的TextBox会吞噬该事件。 – 2010-08-18 13:24:40

+0

事实上,它是一个隧道事件意味着萨马尔的PreviewKeyDown事件处理程序应该在TextBox有机会处理它之前触发? – xr280xr 2011-11-03 16:22:19