2

我的表单上有一个文本框,我正在尝试添加一些验证。我已将以下方法附加到 textchanged 事件。但是,我收到“方法匹配 system.EventHandler 没有重载”错误。我真的不明白为什么我会得到它。当我调用它时,我没有将参数传递给方法吗?

        private void rangeValidate(TextBox textbox)
        {

            int mark = Convert.ToInt32(textbox.Text);
            if (mark >= 0 & mark >= 100)
            {
                MessageBox.Show("Please enter a number betwen 0 and 100");
            }

        }
4

2 回答 2

5

如果您附加此方法:

private void rangeValidate(TextBox textbox)

to TextChanged,您需要符合代表签名。所以,像这样改变它:

private void rangeValidate(object sender, EventArgs e)
{
    TextBox textbox = sender as TextBox;
    int mark = Convert.ToInt32(textbox.Text);
    if (mark >= 0 & mark >= 100)
    {
        MessageBox.Show("Please enter a number betwen 0 and 100");
    }
}
于 2013-11-06T12:32:33.327 回答
0

你也可以像这样声明这个函数:

protected void rangeValidate(object sender, EventArgs e)

并在文本框的页面加载中添加事件,例如 TextBox1

TextBox1.TextChanged += rangeValidate;
于 2013-11-06T12:36:03.690 回答