0

大家好。这是我的第一个程序,在 5 分钟内我有一个错误。我直到今天才开始使用 C#,所以我知道我应该四处看看,但我不认为我正在做的事情有问题。

我的程序是一个生成器,具体取决于用户在所有文本框中选择或键入的内容,具体取决于生成代码的外观。

我有两个名为: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)
    {

    }

这是 C++ 中的 form1.designer:

// 
   // 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);
4

3 回答 3

3

在这种情况下,函数 textbox1_textChanged 应该有两个参数,以便 EventHandler 接受

textBox1_TextChanged(object sender, EventArgs e)
于 2013-05-21T22:45:42.867 回答
2

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

private void textBox1_TextChanged(object sender, EventArgs e)
{
}
于 2013-05-21T22:45:19.890 回答
1

编译器准确地告诉您出了什么问题,您没有被EventHandler调用的textBox1_TextChanged.

textBox1_TextChanged将您的方法更改为:

    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);
于 2013-05-21T22:48:03.477 回答