KeyPress事件C#

时间:2013-02-21 08:46:51

标签: c# windows-ce device keypress

我有一个带9个按钮的“主页”屏幕。按钮的所有文本属性都设置为:&返回,以便R在显示中加下划线。

所以当我在主屏幕按R时,我想要加载退货屏幕。这就是我所拥有的:

private void frmHome_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.R)
    {
        frmReturns R = new frmReturns(empid);
        R.Show();
        this.Hide();
        e.Handled = true;
    }
}

但这绝对没有。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

您应该将表单的KeyPreview属性设置为true

this.KeyPreview = true;

否则按下键的事件将在某些形式的内部控件中出现,而不是在主窗体中出现。

此外,您的比较区分大小写。 e.KeyChar == (char)Keys.R仅适用于R,但不适用于r

if(char.ToUpper(e.KeyChar) == (char)Keys.R)

答案 1 :(得分:0)

我认为这篇文章与此类似: CTRL + S to submit form and all inputs

我做过类似的事情,确实有效。它可能需要更多输入,因为你不想在你完成之前不小心输入命中r以使页面重定向到某个地方?