2010-08-17 55 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