2

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

因此,当我在主屏幕上按 R 时,我希望加载 Returns 屏幕。这就是我所拥有的:

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;
    }
}

但这绝对没有任何作用。有人可以帮忙吗?

4

2 回答 2

3

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

this.KeyPreview = true;

否则会在表单的一些内部控件中引发按下键的事件,而不是在主表单中。

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

if(char.ToUpper(e.KeyChar) == (char)Keys.R)
于 2013-02-21T08:55:49.063 回答
0

我认为这篇文章是类似的: CTRL + S 提交表单和所有输入

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

于 2013-02-21T08:50:37.843 回答