2

我需要一些有关我的 C# 程序的帮助,我收到一条错误消息,因为我有一个表单,用户可以在其中输入文本到文本框中。我试图检测用户是否按下了 Enter 键,这样做会产生一个带有消息的消息框。但是,我正在尝试调用“KeyEventArgs”类,它允许我检测按键,但收到以下错误消息:

'TextBox_KeyDown' 没有重载匹配委托 'System.EventHandler'

这是我正在使用的 TextBox 的代码:

    private void TextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            MessageBox.Show("You have entered the correct key.");
        }
    }

单击错误消息以获取更多详细信息,将我带到我正在使用的表单的 Designer 类,并在以下文本下划线:

   this.TextBox.KeyDown += new System.EventHandler(this.TextBox_KeyDown);
4

2 回答 2

2

改为使用KeyEventHandler。另外,你的名字是TextBox真的TextBox吗?不建议这样做,因为它对于您是指实例还是 TextBox 控件对象会变得模棱两可。

 this.TextBox.KeyDown += new KeyEventHandler(this.TextBox_KeyDown)

您的错误消息是指您的方法的签名是(object sender, KeyEventArgs e)但您尝试传递的委托实际上具有`(object sender, EventArgs e).

于 2013-03-22T17:59:56.380 回答
0

试试 this.TextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBox_KeyDown);

于 2013-03-22T18:00:19.693 回答