Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何验证C#.net winforms中的文本框_Winforms_C# 4.0_Textbox_Validation_Errorprovider - Fatal编程技术网

如何验证C#.net winforms中的文本框

如何验证C#.net winforms中的文本框,winforms,c#-4.0,textbox,validation,errorprovider,Winforms,C# 4.0,Textbox,Validation,Errorprovider,我有一个表单,我需要验证文本框,如Firstname、Middlename、Lastname、emailId、date、mobilenumber。验证应该在用户开始在文本框中键入时进行。如果用户输入数字代替文本和文本代替数字,errorprovider应在文本框下显示消息。我开始了解隐式验证和显式验证,但我觉得使用隐式验证更好,因为当用户失去对文本框的关注或切换到另一个文本框时,它会及时提供错误。我已经用一个明确的验证代码提出了这类问题,但没有人回答我。所以我很容易得到帮助。在发布此问题之前,请

我有一个表单,我需要验证文本框,如Firstname、Middlename、Lastname、emailId、date、mobilenumber。验证应该在用户开始在文本框中键入时进行。如果用户输入数字代替文本和文本代替数字,errorprovider应在文本框下显示消息。我开始了解隐式验证和显式验证,但我觉得使用隐式验证更好,因为当用户失去对文本框的关注或切换到另一个文本框时,它会及时提供错误。我已经用一个明确的验证代码提出了这类问题,但没有人回答我。所以我很容易得到帮助。在发布此问题之前,请不要认为我没有做足够的研究。

您应该查看文本框中的TextChanged事件

如果文本属性被更改,则引发此事件 编程修改或用户交互

我会这样做

private void TextBoxExample_TextChanged(object sender, EventArgs e)
{
   TextBox box = sender as TextBox;

   if (box.Text.Contains("Example"))
   {
      LabelError.Text = "Error";
   }
   else
   {
      LabelError.Text = string.Empty;
   }
}

希望有帮助:)

您也可以使用keyPressEvent来避免在文本框中输入数值 它不允许在文本框中使用数字字符

private void textboxName_KeyPress(object sender, KeyPressEventArgs e)
    {
        //not allowing the non character values
        if (!char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar) && !(e.KeyChar == (char)Keys.Back) && !(e.KeyChar == (char)Keys.Left) && !(e.KeyChar == (char)Keys.Right) && !(e.KeyChar == (char)Keys.Space) && !char.IsPunctuation(e.KeyChar))
        {
            e.Handled = true;
        }
    } 

如果你有一个非常具体的验证要做,马克的答案是正确的。但是,如果您只确保“输入数字而不是字母”或“输入字母而不是数字”功能,则MaskedTextBox会比您做得更好(用户将无法回答错误数据,您仍然可以通过处理MaskInputRejected事件来警告他们)


我是否需要为每个textbox单独实现此功能。不,您可以将所有textbox TextChanged事件附加到此方法。