C #, winform - Максимальный лимит NumericUpDown не проверен на KeyPress? - PullRequest
2 голосов
/ 11 октября 2011

Использование элемента управления NumericUpDown в Winform-приложении C #.

Установить максимальное значение как 99. Но когда я набираю значение выше 99, например: 555, это позволяет мне вводить (событие key_press) в значениях 555, и оно возвращается к максимальному значению (99), только если я ухожуконтроль.Что мне нужно, так это то, что пользователю нельзя разрешать вводить значения больше 99. Кроме того, это не должно влиять на значения поведения по умолчанию «Действие вверх и вниз».Как мне это сделать?

Ответы [ 4 ]

1 голос
/ 11 октября 2011

Просто быстрая идея:

public class StrictNumericUpDown : NumericUpDown
{
    protected override void OnTextBoxTextChanged(object source, EventArgs e)
    {
        base.OnTextBoxTextChanged(source, e);
        if (Value > Maximum)
        {
            Value = Maximum;
        }
    }
}
1 голос
/ 11 мая 2012

Использование

KeyUp

Event.

или

((TextBox)numericUpDown1.Controls[1]).MaxLength = 2; // Как упоминал Ганс.

0 голосов
/ 18 августа 2018

Когда мы использовали числовое управление вниз в c #, с событиями нажатия клавиш, нажатия клавиш / вверх, когда вы хотели ограничить ограничение длины цифры в элементе управления, как 2,3,4 ... и т. Д. Для цифр предела-1, вы выбираетезначение в элементе управления, используя сочетание клавиш ctrl + shift + стрелка влево или вправо и нажмите цифровую клавишу для нового значения, оно работает нормально, но когда вы выбираете все цифры (ограничение длины), новая цифровая клавиша не может вводиться в числовом элементе управления вниздля обработки события ниже изображения:

Фрагмент кода события KeyDown с проблемой

Следовательно, @ Ханс Пассант предложил обходной путь приведения типа к этой проблеме.

Добавьте эту строку в событие загрузки формы или в метод InitializeComponent().

((TextBox)numericUpDown1.Controls\[1\]).MaxLength = 4;

Для правильной обработки ограничения длины в 4 цифры в следующем фрагменте кода:

Фрагмент кода события KeyDown сРешение

Спасибо!Ганс Пассант

0 голосов
/ 11 октября 2011

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

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