验证WinForms TextBox(在C#中)

时间:2009-06-26 11:45:59

标签: c# windows winforms textbox c#-2.0

在TextBox_Leave事件中,我需要检查在文本框中输入的数字是否在序列号中。如果它不是按顺序,那么我需要显示一条消息,因为“数字”缺失

例如:

在文本框中,我输入了3并单击了标签: 我需要将消息显示为 “数字不按顺序,数字”1“和”2“缺失”

5 个答案:

答案 0 :(得分:7)

我不知道这是否也适用于c#2.0,这是我在c#3.0中的经验:

为什么要使用TextBox_Leave?验证事件应该用于验证输入是否正确。

使用Validating-event和使用ErrorProvider组合(您可以将它从工具箱拖到表单上)来设置错误消息:它将显示为红色三角形中的(闪烁)感叹号。

ErrorProvider还可以阻止任何提交操作。

答案 1 :(得分:1)

一个技巧是在尝试离开时(例如使用TAB)在文本框中保留焦点,以防出现某些情况(缺少数字):

 private void textBox1_Leave(object sender, EventArgs e)
    {
        TextBox tb = (TextBox)sender;

        if (tb.Text == "3")
            tb.Focus();
    }

假设您使用的是标准文本框。您还可以使用第三方控件,在某些情况下可以取消事件(e.Cancel = true)。

答案 2 :(得分:1)

尝试使用蒙面文本框控件,并为此类字段验证设置自定义属性。

答案 3 :(得分:1)

或者您也可以使用文本框的验证事件。

  private void textBox1_Validating( object sender, CancelEventArgs e )
  {
      if ( textBox1.Text == "3" )
          e.Cancel = true;
  }

文本框在收到有效输入之前不会失去焦点。

答案 4 :(得分:0)

我将向您展示如何验证Validating WinForms TextBox(在C#中)。

  1. 创建一个函数:

    public static void ChkBlankTextBoxes(object sender, string type)
    {
    
        if (sender is TextBox)
        {
            TextBox textbox = sender as TextBox;
            if (string.IsNullOrEmpty(textbox.Text))
            {
                MessageBox.Show("Please enter correct value value..");
                textbox.Focus();
    
            }
        }
    }
    
  2. 调用创建的函数:

    ChkBlankTextBoxes(txt_userID, textBoxtype);
    
    ChkBlankTextBoxes(txt_password, textBoxtype);