Проверка WinForms TextBox (в C #) - PullRequest
0 голосов
/ 26 июня 2009

В событии TextBox_Leave мне нужно проверить, являются ли числа, введенные в текстовом поле, серийным номером или нет. Если это не так, то мне нужно отобразить сообщение, так как "число" отсутствует

Например:

В текстовом поле я ввел 3 и нажмите вкладку: Мне нужно отобразить сообщение как «Номер не в порядке, номера« 1 »и« 2 »отсутствуют»

Ответы [ 5 ]

7 голосов
/ 26 июня 2009

Я не знаю, работает ли это также в c # 2.0, это мой опыт в c # 3.0:

Почему вы используете TextBox_Leave для этого? Событие Validating должно использоваться для проверки правильности ввода.

Объедините использование события Validating с использованием ErrorProvider (вы можете просто перетащить его из панели инструментов на форму), чтобы установить сообщение об ошибке: оно будет отображаться как (мигающий) восклицательный знак в красном треугольнике. *

ErrorProvider также может блокировать любые действия отправки.

1 голос
/ 02 февраля 2012

В качестве альтернативы вы также можете использовать событие проверки в текстовом поле.

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

Текстовое поле не теряет фокус, пока не получит действительный ввод.

1 голос
/ 28 июня 2009

Попробуйте использовать элемент управления Masked TextBox и задайте пользовательское свойство для этого типа проверки поля.

1 голос
/ 26 июня 2009

Одна хитрость заключается в сохранении фокуса в текстовом поле при попытке выйти (например, с помощью клавиши TAB) в случае какого-либо условия (пропущенное число):

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

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

Предполагается, что вы используете стандартное текстовое поле. Вы также можете использовать сторонние элементы управления, где вы можете отменить событие (e.Cancel = true) при некоторых условиях.

0 голосов
/ 14 июня 2014

Я покажу вам, как проверить 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);
    
...