Form1_KeyDown调用button1_Click

时间:2013-09-19 21:30:26

标签: c# click keydown

我有这样的代码:

    private void button1_Click(object sender, EventArgs e) {
        // Do something...
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e) {
        if (e.KeyData == Keys.A) {
            // Call button1_Click.
        }
    }

如何设置调用Click事件?我该怎么写而不是

            // Call button1_Click.

谢谢!

2 个答案:

答案 0 :(得分:2)

意图触发事件而不调用。因此,您可以通过执行单击按钮来触发Form1_KeyDown事件中的事件。我的意思是

    private void Form1_KeyDown(object sender, KeyEventArgs e) {
            if (e.KeyData == Keys.A) {
                button1.PerformClick();
            }
    }

答案 1 :(得分:0)

由于按钮点击事件处理程序只是一种方法,您可以这样做:

private void Form1_KeyDown(object sender, KeyEventArgs e) {
    if (e.KeyData == Keys.A) {
        button1_Click(this, e);
    }
}

但是,将逻辑移动到单独的方法中并从两个位置调用它通常更好。通过将button1_Click中的逻辑重构为它自己的方法,您可以清楚地表明您从任一组事件处理程序中调用该逻辑。