C#通过填写简单的注册表来显示错误消息
我对C#是新手,我学了一年C编程 我创建了一个窗口表单,要求用户填写注册表单 当某个字段未填充或未被很好地使用时,我希望在按钮下方显示一条错误消息 我使用了以下基本代码:C#通过填写简单的注册表来显示错误消息,c#,forms,window,errorprovider,C#,Forms,Window,Errorprovider,我对C#是新手,我学了一年C编程 我创建了一个窗口表单,要求用户填写注册表单 当某个字段未填充或未被很好地使用时,我希望在按钮下方显示一条错误消息 我使用了以下基本代码: private void button1_Click(object sender, EventArgs e) { if (!isOkay(userTextBox.Text)) { label5.Text = "Please, enter an username.
private void button1_Click(object sender, EventArgs e)
{
if (!isOkay(userTextBox.Text))
{
label5.Text = "Please, enter an username.";
label5.Visible = true;
}
else if (!isOkay(mailTextBox.Text))
{
label5.Text = "Please, enter a mail address.";
label5.Visible = true;
}
else if (!confirmMailTextBox.Text.Equals(mailTextBox.Text) || !isOkay(confirmMailTextBox.Text))
{
label5.Text = "Please, match both mails addresses.";
label5.Visible = true;
}
else if (!isOkay(passwordTextBox.Text))
{
label5.Text = "Please, enter a password.";
label5.Visible = true;
}
else
{
label5.Text = "Valid form, yay !";
label5.Visible = true;
}
}
private Boolean isOkay(string textBoxContent)
{
return (textBoxContent.Length > 0 || textBoxContent.Equals(null));
}
是否有任何优雅或优化的方法来正确完成?我发现了一些错误提供程序,但显然错误提供程序打开了一个弹出窗口,我只想看到“按钮下方的红色错误消息”
你能给我一些帮助吗?:) 给定一个这样的类
public class RequiredFieldsError
{
private List<string> errors;
public RequiredFieldsError()
{
errors = new List<string>();
}
public int Count
{
get{return errors.Count;}
}
public void AddField(string errorField)
{
errors.Add(errorField);
}
public override string ToString()
{
if(errors.Count == 0)
return string.Empty;
else
{
string fields = string.Join(Environment.NewLine, errors);
fields = "The following fields contains errors:" + Environment.NewLine + fields;
return fields;
}
}
}
这种方法避免了在用户收到错误消息时出现令人不安的情况(对于您的用户),他/她修复了错误消息,以便在下一次尝试确认表单时收到另一条错误消息
当然,您的标签应该足够高,可以显示所有可能的消息,或者只使用messagebox
我还建议将IsOkay
函数更改为
private Boolean isOkay(string textBoxContent)
{
return !string.IsNullOrWitheSpace(textBoxContent));
}
这也将处理仅由一个或多个空格组成的字符串。(非空且非长度==0)您可以使用ErrorProvider。在文本框后显示一个错误图标 例如,对于其中一个文本框:
if (!isOkay(userTextBox.Text))
{
errorProvider1.SetError(userTextBox "yourmessage");
}
else{
errorProvider1.Clear();
}
链接:检查本文因为您只有4个文本框要检查,您是否考虑过编写一个函数,在
确认按钮的代码后面检查并调用该函数?
if (!isOkay(userTextBox.Text))
{
errorProvider1.SetError(userTextBox "yourmessage");
}
else{
errorProvider1.Clear();
}