方法签名与文本框事件处理程序不匹配

时间:2013-10-14 15:55:04

标签: c# winforms events textbox

当我使用Char.IsNumber时,它会在form1.designer.cs中生成错误。

  

textBox1_TextChanged”没有重载符合委托“System.EventHandler

private void textBox1_TextChanged(object sender, KeyPressEventArgs e)
{
    if (char.IsNumber(e.KeyChar))
    {
        textBox1.Text = e.KeyChar.ToString();
    }
    else
    {
        MessageBox.Show("Char value");
    }
}


///////////// Text Box ///////////////
this.textBox1.Location = new System.Drawing.Point(73, 57);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(177, 20);
this.textBox1.TabIndex = 0; 
this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);  // error occurs on this line 

2 个答案:

答案 0 :(得分:2)

KeyPressEventArgs更改为TextChangedEventArgs(对于WPF,对于winforms使用EventArgs)。该错误告诉您TextChanged事件的签名与您分配给它的方法不匹配。

答案 1 :(得分:0)

您的处理程序与TextChanged事件的签名不匹配,请尝试:

private void textBox1_TextChanged( object sender, EventArgs e )

此外,当您这样做时,您会发现TextChanged事件中没有e.KeyChar。你确定这是你想要的活动吗?