我有一个带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;
}
}
但这绝对没有。有人可以帮忙吗?
答案 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以使页面重定向到某个地方?