2016-08-04 67 views
0

我的輸入關鍵事件不會執行任何操作......在文本框中按Enter鍵時甚至不會顯示簡單的文本框。爲什麼我在WPF C#中不能輸入關鍵事件?

我是新來的c#和編碼一般。有趣的是,我的視覺工作室不會讓某些事情像MessageBox.Show一樣通過...它使我做System.Windows.MessageBox.Show。以防萬一,這是一個線索的問題可能是什麼?

這是我有...

private void textBoxPartNumber_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) 
    { 
     if (e.KeyCode == System.Windows.Forms.Keys.Enter) 
     { 
      //textBoxQuantity.Focus(); 
      System.Windows.MessageBox.Show("Testing 123"); 
      System.Windows.Forms.SendKeys.Send("{TAB}");     
      e.Handled = true; 
      e.SuppressKeyPress = true; 
     } 
    } 
+0

檢查此事件的xaml綁定 – Mostafiz

+0

您的問題請求幫助WPF應用程序,但您的代碼使用Windows窗體應用程序的命名空間。你在使用哪一個? –

+0

這是一個很好的問題。我知道這是WPF應用程序,當我第一次開始它作爲一個新項目,但我不知道我現在可以檢查它,但就像我說的,我曾經有過像MessageBox.Show這樣的東西,但Visual Studio不會讓我這樣做,所以我按下Ctrl +。並讓它自行修復。 – ckaknleapex

回答

0

如果您使用的是WPF,那麼它顯示您的事件簽名不正確。嘗試是這樣的:

private void textBox_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Enter) 
    { 
     //Do something 
    } 
} 

KeyEventArgs類和Key枚舉是在PresentationCore裝配System.Windows.Input命名空間。

+0

非常感謝。我之前確實有Key,但它什麼都不做,所以我在Google上搜索並嘗試KeyCode沒有意識到它是用於winforms,然後在這裏發佈的。在你的評論和Mostafiz之間,我能夠得到如果顯示一個MessageBox,如果我按Enter/Return,但我不能讓它發送一個Tab鍵或任何其他鍵。 任何想法爲什麼System.Windows.Forms.MessageBox.Show(「test」);但是System.Windows.Forms.SendKeys.SendWait(「{TAB}」);不? 但是,如果我在同一時間他們都在同一時間,消息框連續出現2次... – ckaknleapex

+0

我取得了預期的效果,而不是發送鍵只是說textbox2.Focus(); 再次感謝您的幫助! – ckaknleapex

1

使用

if (e.KeyCode == System.Windows.Forms.Keys.Return) 

相反:)

+0

這並沒有給我任何紅色的縮影,但是當我給它一個回車符時它仍然不會做任何事情。 – ckaknleapex

1

TextBox屬性AcceptsReturn

<TextBox AcceptsReturn="true"/> 
+0

這只是讓我可以在文本框中按下輸入,而不是執行新的命令來更改框。 – ckaknleapex

+0

你測試過了嗎? – Paparazzi

+0

哦,我想出了修復。祝你好運。 – Paparazzi

相關問題