这是一个使用的代码片段,因此文本框(“TxtInput1”)中只有一个小数,并且只有数字:

private void TxtInput1_TextChanged(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
    {
        e.Handled = true;
    }

    // only allow one decimal point
    if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
    {
        e.Handled = true;
    }
}

但这给了我以下错误:



我单击错误,并 pop 如下:
form1.TxtInput1.Location = new System.Drawing.Point(92, 111);
form1.TxtInput1.Name = "TxtInput1";
form1.TxtInput1.Size = new System.Drawing.Size(43, 20);
form1.TxtInput1.TabIndex = 8;
form1.TxtInput1.TextChanged += new System.EventHandler(form1.TxtInput1_TextChanged);
System.EventHandler(form1.TxtInput1_TextChanged);行用红色下划线表示这是错误的。这个问题有解决办法吗?

最佳答案

您的方法的签名与处理TextChanged事件所需的签名不匹配。 TextChanged事件的第二个参数只是EventArgs。但是,如果将其更改为该值,则方法的内容将无法编译。

从方法签名的外观来看,您需要将其关联到KeyPress事件。

08-07 22:56