Validating WinForms TextBox (in C#)

前端 未结 5 1824
没有蜡笔的小新
没有蜡笔的小新 2021-01-07 14:53

In TextBox_Leave event i need to check whether numbers entered in textbox is in serial number or not.If it is not in order then i need to display a message as \"number\" is

相关标签:
5条回答
  • 2021-01-07 14:55

    I will show you how to validate Validating WinForms TextBox (in C#).

    1. Create a function:

      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. Call to created function:

      ChkBlankTextBoxes(txt_userID, textBoxtype);
      
      ChkBlankTextBoxes(txt_password, textBoxtype);
      
    0 讨论(0)
  • 2021-01-07 14:57

    One trick is to retain focus in the textbox when trying to leave (with TAB for instance) in case of some condition (missing number):

     private void textBox1_Leave(object sender, EventArgs e)
        {
            TextBox tb = (TextBox)sender;
    
            if (tb.Text == "3")
                tb.Focus();
        }
    

    Assuming you are using a standard textbox. You could also use third party controls that where you can cancel an event (e.Cancel = true) on some condition.

    0 讨论(0)
  • 2021-01-07 14:58

    Try using a Masked TextBox control and set a custom property for this type of field validation.

    0 讨论(0)
  • 2021-01-07 15:07

    I don't know whether this also works in c#2.0, this is my experience in c#3.0:

    Why do you use TextBox_Leave for that? The Validating-event should be used for validating whether input is correct.

    Combine using the Validating-event with using an ErrorProvider (you can just drag it from the toolbox onto the form) to set an error message: it will be displayed as a (blinking) exclamation mark in a red triangle.

    An ErrorProvider can also block any submit-actions.

    0 讨论(0)
  • 2021-01-07 15:19

    Alternatively you can also use Validating event of the text box.

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

    The text-box wont loose focus until it receives a valid input.

    0 讨论(0)
提交回复
热议问题