使用C#验证窗体表单

时间:2017-01-04 14:11:24

标签: c# forms validation

我是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");      
}

3 个答案:

答案 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))
{...}