我是C#
的新手我正在尝试使用C#验证表单。我希望验证失败时显示MessageBox
。我有错误:
“无重载方法'UserFormValidation'”
代码在
之下// Validation Method
public void UserFormValidation(object sender, CancelEventArgs e)
{
if (textSurname.Text == " ")
{
MessageBox.Show("Please insert your Surname");
}
else if (textFirstname.Text == " ")
{
MessageBox.Show("Please insert your Firstname");
}
}
private void UserRegistrationSend_Click(object sender, EventArgs e)
{
// Call the validation Method
UserFormValidation();
// if validation pass print message below
MessageBox.Show("User Registed", "User Message");
}
答案 0 :(得分:3)
您已使用参数
定义了UserFormValidation
方法
public void UserFormValidation(object sender, CancelEventArgs e)
但是你在没有参数的情况下调用它:
UserFormValidation();
解决此问题的一种方法是更改方法签名,这样只要您不需要它们就不需要参数 - 从现有代码看起来就像这样。另一种方法是在调用它时简单地给它参数:
UserFormValidation(this, new CancelEventArgs());
第三种选择是添加一个不带参数的重载,从而保留一个完整的,以防你在其他地方使用它。在你的超载中,你可以简单地调用一个采用参数的那个:
public void UserFormValidation()
{
UserFormValidation(this, new CancelEventArgs());
}
您选择哪一个最终取决于您的使用方式。
答案 1 :(得分:0)
这是因为你的方法UserFormValidatin需要2个参数,你可以不带参数调用它
答案 2 :(得分:-1)
致电
UserFormValidation(sender, new CancelEventArgs());
如果要验证表单控件,可以使用ValidateChildren()方法执行此操作。
请查看msdn示例代码:
[1]: https://msdn.microsoft.com/en-us/library/ms158374(v=vs.110).aspx
另一个问题是
if(textSurname.Text ==“”)
如果您只有1个空格,则此条件为True。
你必须这样做:
if (IsNullOrWhiteSpace(textSurname.Text))
{...}