形式键盘事件中断文本框关键点事件C#的工作



我有一个表单,其中我正在使用form_keydown事件和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事件中跳过文本框。这可能吗?

函数键已经在使用,用户不喜欢用户alt或ctrl。

是否有form_keydown事件和文本框关键的工作方式有所不同?

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

最新更新