Какое событие срабатывает при изменении значения numericUpDown1 по нажатию по клавишу.
-
1 августа 2012 г. 5:32
Какое событие срабатывает при изменении значения numericUpDown1 по нажатию по клавишу.
Следующий код не работает если изменить значение по нажатию по клавишу:
private void numericUpDown1_ValueChanged(object sender, EventArgs e) { MessageBox.Show("Hello"); }Событие KeyPress и KeyDown не подошли так как они срабатывают до того пока значение измениться.
Все ответы
-
1 августа 2012 г. 6:25ОтвечающийСобытие ValueChenged сработает после нажатия на клавишу Enter или потери фокуса. Это модель работы элемента.
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
-
1 августа 2012 г. 6:37
Событие ValueChenged сработает после нажатия на клавишу Enter или потери фокуса. Это модель работы элемента.
А как сделать чтобы срабатывала сразу? -
1 августа 2012 г. 6:55
а там есть событие TextChanged или что-то вроде того?
если да, можно его обработать,
правда тогда Value может наверное и не измениться (не знаю), пока не применится по ентеру или выходу,
(предположим, что потому и не срабатывает событие). -
1 августа 2012 г. 7:01Там нет TextChanged, но я могу использовать для этого класс Timer, но лучше я буду пользоваться классом TextBox.
-
1 августа 2012 г. 7:09Отвечающий
Там нет TextChanged, но я могу использовать для этого класс Timer, но лучше я буду пользоваться классом TextBox.
А зачем вам понадобилось получать значение именно в момент ввода? Ведь стандартный функционал не спроста был так сделан, в этом есть логика. Например если я хочу где то рядом отобразить результат ввода в NumericUpDown, то вводя число 1562 я буду видеть поочередно "1", "15", "156" и потом уже "1562", что и нежно было мне изначально.Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
-
1 августа 2012 г. 7:48
В моём проекте значение должно увеличиваться нажатием клавиш стрелок, я уже использую класс TextBox.А зачем вам понадобилось получать значение именно в момент ввода?
-
1 августа 2012 г. 7:56Отвечающий
А зачем вам понадобилось получать значение именно в момент ввода?
В моём проекте значение должно увеличиваться нажатием клавиш стрелок, я уже использую класс TextBox.
Старайтесь изначально правильно формулировать вопрос. Ничего сложно сделать так, что бы NumericUpDown увеличивал/уменьшал значения по клавишам стрелок:
private void NumericUpDown1_KeyUp(System.Object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode == Keys.Up & NumericUpDown1.Value < NumericUpDown1.Maximum) { NumericUpDown1.Value += 1; } if (e.KeyCode == Keys.Down & NumericUpDown1.Value > NumericUpDown1.Minimum) { NumericUpDown1.Value -= 1; } }Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
-
1 августа 2012 г. 8:08Спасибо за ответ, но если поточнее главная проблема в том чтобы когда пользователь вводил значение клавишами, то переменные должны равняться этому значению Value сразу после нажатия клавиши.
-
1 августа 2012 г. 8:20Отвечающий
Событие KeyPress и KeyDown не подошли так как они срабатывают до того пока значение измениться.
А событие KeyUp вы пробовали? Вот такой код работает так как вы хотите:
private void NumericUpDown1_KeyUp(System.Object sender, System.Windows.Forms.KeyEventArgs e) { this.Text = NumericUpDown1.Value; }Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
- Помечено в качестве ответа Ziya Ceferov 2 августа 2012 г. 8:08

