我有一个表单,我使用的是Form_keyDown Event和KeyPreview = true。
代码如下
private void MainForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.C)
button2_Click(sender, e);
if (e.KeyCode == Keys.P)
button3_Click(sender, e);
if (e.KeyCode == Keys.B)
button4_Click(sender, e);
if (e.KeyCode == Keys.U)
button5_Click(sender, e);
if (e.KeyCode == Keys.T)
button6_Click(sender, e);
if (e.KeyCode == Keys.W)
button7_Click(sender, e);
if (e.KeyCode == Keys.X)
button8_Click(sender, e);
}
但是当我按下文本框上的键(即C,P,B,U,T,W和X)时,事件会触发。我需要的是从Form_keyDown事件中跳过TextBox。这可能吗?
功能键已在使用中,用户不喜欢用户alt或ctrl。
是否有任何离开form_keyDown事件和textBox KeyPress的工作方式不同?
答案 0 :(得分:1)
private void MainForm_KeyDown(object sender, KeyEventArgs e)
{
if (ActiveControl.Name!="textBox20")
{
if (e.KeyCode == Keys.C)
button2_Click(sender, e);
if (e.KeyCode == Keys.P)
button3_Click(sender, e);
if (e.KeyCode == Keys.B)
button4_Click(sender, e);
if (e.KeyCode == Keys.U)
button5_Click(sender, e);
if (e.KeyCode == Keys.T)
button6_Click(sender, e);
if (e.KeyCode == Keys.W)
button7_Click(sender, e);
if (e.KeyCode == Keys.X)
button8_Click(sender, e);
}
}