Имеем NumericUpDown, из которого по клике на кнопку берется значение и используется. Если мы просто вводим в него значения и меняем их - все в порядке. Но если мы удаляем значение и оставляем его пустым - компонент начинает вести себя очень странно. На форме остается пустое значение, а в свойстве Value сохраняется предыдущее значение, которое было до удаления.
Если мы просто введем 0, то все в порядке. Но пользователям сложно понять, почему нельзя просто удалить значение. Казалось бы решение трудности очевидно - привяжемся на событие изменения значения, проверим строку в свойстве Text на пустоту и проставим в Value значение 0.
if (String.IsNullOrEmpty(someMyNumericUpDown.Text)) { rynocKvMNumericUpDown.Value = 0; }
Но ни фига! При удалении значения NumericUpDown клавишей delete событий ValueChanged и KeyPress не происходит. Они происходят только в том случае, если в компонент вводятся цифры.
Теоретически есть еще событие TextChanged, но в списке событий VisualStudio оно почему-то не отображается.
Так что я пока повесил проверку на клик по кнопке, при котором собственно и берется значение NumericUpDown.
Действительно, такое событие есть. Однако, если оно не отображается в списке событий - это ещё не означает, что его нельзя использовать.
Тебе просто нужно сделать в коде программы
numericUpDown1.TextChanged += new EventHandler(numericUpDown1_TextChanged);
и, соответственно создать функцию. Уж это событие срабатывает при любом изменении текстового поля.