将Keydown事件分配给所有textBoxes

时间:2016-11-03 20:35:39

标签: c# events

我正在尝试将keyDown事件分配给一个表单中的所有textBox。

到目前为止我的代码:

        void listenTextBox_KeyDownEvent(Control control)
    {
        foreach (Control ctrl in control.Controls)
        {
            if (ctrl is TextBox)
            {
                TextBox tb = (TextBox)ctrl;
                tb.KeyDown += new EventHandler(textBox_KeyDown);
            }
            else
            {
                listenTextBox_KeyDownEvent(ctrl);
            }
        }
    }
    void textBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            TextBox tb = (TextBox)sender;
            MessageBox.Show("Great Enter was hit");
        }

    }

但是我遇到了一个我不明白的错误:

  

&textff_KeyDown'没有超载匹配委托' EventHandler'

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试更改

tb.KeyDown += new EventHandler(textBox_KeyDown);

代表

tb.KeyDown += new KeyEventHandler(textBox_KeyDown);