我正在使用.net紧凑框架2.0为摩托罗拉9090-G开发一个小应用程序。
我的问题是我似乎无法在文本框中检测到输入按键。如何检测文本框中的输入按键?
3种检测方法似乎都不起作用。有趣的是,它可以在ppc模拟器中工作。但它并不适用于我的实际硬件。
private void tbxQTY_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return || e.KeyCode == Keys.Enter || e.KeyCode == Keys.Decimal)
{
QTYEntered();
e.Handled = true;
}
if (e.KeyData == Keys.Enter || e.KeyData == Keys.Return)
{ do something }
if (e.KeyValue == (char)13)
{ QTYEntered(); MessageBox.Show("test"); e.Handled = true; }
}
答案 0 :(得分:3)
对我来说,答案是使用KeyPress事件,而不是KeyDown:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
// Enter
}
}
答案 1 :(得分:0)
答案 2 :(得分:0)
OEM有时会以不同的方式配置密钥。诀窍是创建一个只处理按键事件和按键事件的应用程序,然后查询按下相关按键时获得的值。你可能会对结果感到满意。
我有一次Intermec单位。输入正确输入,但ACTION键为Enter,后跟F23约10 ms。上帝......很难编写代码来使密钥有用(即做一些与输入密钥不同的东西)。解决方案包括一个名为:
的函数public bool IsReallyEnter(KeyEventArgs e);
KeyPress是一个不错的解决方法,你的问题是如果他们持有keydown会多次触发。
答案 3 :(得分:0)
这就是我现在如何在字段和“最后”字段之间导航,我调用我的保存功能。我不会错过任何一把钥匙:
Private Sub TextBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Select Case e.KeyCode
Case Keys.Enter
ComboBox2.Focus()
End Select
End Sub