No overload for 'textBox1_TextChanged' matches deleg

本文关键字:TextChanged matches deleg textBox1 overload No for | 更新日期: 2023-09-27 18:14:48

大家好。这是我的第一个程序,在5分钟内我出现了一个错误。我今天才开始使用c#,所以我知道我应该到处看看,但我不认为我在做什么有问题。

My Program is a Generator根据用户在所有文本框中选择或键入的内容取决于生成代码的外观。

我有两个文本框命名为:textBox1GeneratedCode

当我按下checkBox1时,它允许使用textbox1

当我按下按钮时,它创建了一个字符串"Testing"(这是为了确保我做对了)。

当我按下F5来测试我的构建时,它返回了这个错误:

No overload for 'textBox1_TextChanged' matches delegate 'System.EventHandler'

我不知道这是什么意思

下面是我的代码:

    public void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        switch (checkBox1.Checked)
        {
            case true:
                {
                    textBox1.Enabled = true;
                    break;
                }
            case false:
                {
                    textBox1.Enabled = false;
                    break;
                }
        }
    }
    private void textBox1_TextChanged()
    {
    }
    public void button1_Click(object sender, EventArgs e)
    {
        GenerateBox.Text += "Testing";
    }
    private void GenerateBox_Generated(object sender, EventArgs e)
    {
    }

这是form1。designer在c++中:

// 
   // textBox1
   // 
   this.textBox1.Enabled = false;
   this.textBox1.Location = new System.Drawing.Point(127, 3);
   this.textBox1.Name = "textBox1";
   this.textBox1.Size = new System.Drawing.Size(336, 20);
   this.textBox1.TabIndex = 1;
   this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); //Error
   // 
   // GenerateBox
   // 
   this.GenerateBox.Enabled = false;
   this.GenerateBox.Location = new System.Drawing.Point(84, 6);
   this.GenerateBox.MaxLength = 1000000;
   this.GenerateBox.Multiline = true;
   this.GenerateBox.Name = "GenerateBox";
   this.GenerateBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
   this.GenerateBox.Size = new System.Drawing.Size(382, 280);
   this.GenerateBox.TabIndex = 1;
   this.GenerateBox.TextChanged += new System.EventHandler(this.GenerateBox_Generated);

No overload for 'textBox1_TextChanged' matches deleg

函数textbox1_textChanged应该有如下两个参数,以便在本例中被EventHandler接受

textBox1_TextChanged(object sender, EventArgs e)

您的textbox1_TextChanged方法与System.EventHandler委托的期望不匹配。应该是

private void textBox1_TextChanged(object sender, EventArgs e)
{
}

编译器告诉你到底是什么错了,你没有一个EventHandler叫做textBox1_TextChanged

textBox1_TextChanged方法改为read:

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        //Why are you handling this event if you aren't actually doing anything here???
    }

关于我对这个问题的其余关注,请参考我的代码示例的注释部分。

如果您不打算为此事件添加处理程序,只需从设计器代码中删除以下内容:

    textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);