2016-08-04 72 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

相关问题