динамическая проверка текстового поля в C # - PullRequest
0 голосов
/ 11 ноября 2010

мое текстовое поле принимает только числовые значения, от 0 до 255 (1 байт), как я могу запретить пользователю вводить число> 255 ... как только введена третья цифра, она должна подтвердить.когда вы выходите из текстового поля и показывает сообщение. Любая помощь очень ценится.

  private void cor_o_gain_Validating(object sender, CancelEventArgs e)
    {
        try
        {
            int entered = int.Parse(cor_o_gain.Text);
            if (entered > 255)
            {
                e.Cancel = true;
                MessageBox.Show("Enter the number between 0 and 255");
            }
        }
        catch (FormatException)
        {
          //  e.Cancel = true;
        }
    } 

Ответы [ 4 ]

5 голосов
/ 11 ноября 2010

Вы можете подумать , а не , потому что это раздражает. Если пользователь вводит «30» и меняет свое мнение, когда курсор находится перед цифрой 3, он может ввести «40», а затем дважды нажать «Удалить». Ваше приложение подаст ему звуковой сигнал и покажет окно сообщения.

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

3 голосов
/ 11 ноября 2010

Проверить на ключевые события; нажатие клавиши, keydown, keyup и т. д.

2 голосов
/ 11 ноября 2010

Вместо этого следует использовать элемент управления numericUpDown и установить минимальное и максимальное значения в пределах от 0 до 255.

System.Windows.Forms.NumericUpDown n = new System.Windows.Forms.NumericUpDown();
n.Minimum = 0;
n.Maximum = 255;
1 голос
/ 11 ноября 2010

Я бы сказал, пересмотреть вашу реализацию.Я использовал программное обеспечение, разработанное таким образом, и это очень раздражает.Это, вероятно, разозлит ваших пользователей с течением времени и не принесет никакой реальной выгоды.

Тем не менее, если вы абсолютно ДОЛЖНЫ остановить пользователя во время набора текста (еще раз вопрос, ДОЛЖЕН ЛИ ВЫ), тогда вам нужно «быстрее действовать».«Событие, как Keypress.

Хотя есть много« более мягких »реализаций.Один из вариантов (не единственный) - изменить цвет фона текстового поля и сделать сообщение об ошибке видимым для предупреждения, но не блокировать пользователя о том, что введенные данные неверны.Это позволяет пользователю изменять текст без прерывания (окном сообщения) при попытке изменить текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...