繁体   English   中英

使用C#验证窗口表单

[英]Validate window form using C#

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

您已经使用参数定义了UserFormValidation方法:

public void UserFormValidation(object sender, CancelEventArgs e)

但是您不带参数调用它:

UserFormValidation();

解决此问题的一种方法是更改​​方法签名,以使它不需要参数,只要您实际上不需要它们即可-从当前代码中可以看出。 另一种方法是在调用它时简单地给它参数:

UserFormValidation(this, new CancelEventArgs());

第三种选择是添加一个不带参数的重载,这样就可以保留一个完整的重载,以防您在其他地方使用它。 在您的重载内部,您可以简单地调用需要参数的那个:

public void UserFormValidation()
{
    UserFormValidation(this, new CancelEventArgs());
}

您最终选择哪一种取决于您的使用方式。

这是因为您的方法UserFormValidatin需要2个参数,而您不带参数调用它

刚打电话

UserFormValidation(sender, new CancelEventArgs());

如果要验证表单控件,则可以使用ValidateChildren()方法进行。

请看一下msdn示例代码:

[1]:https://msdn.microsoft.com/zh-CN/library/ms158374(v=vs.110).aspx

另一个问题是

如果(textSurname.Text ==“”)

如果您只有1个空白,则此条件为True。

您必须这样做:

if (IsNullOrWhiteSpace(textSurname.Text))
{...}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM