Form1_KeyDown打电话给button1_Click

本文关键字:button1 Click 打电话 KeyDown Form1 | 更新日期: 2023-09-27 18:31:58

我有这样一段代码:

    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.

谢谢!

Form1_KeyDown打电话给button1_Click

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

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

由于按钮单击事件处理程序只是一个方法,因此您可以执行以下操作:

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

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