Программирование КПК и смартфонов на .NET Compact Framework | страница 18
>Minimum
и >Maximum
.Пользователь также может изменить свойство >Value
, просто указав соответствующее значение в поле. Если это значение находится в интервале между >Minimum
и >Maximum
, тогда свойства >Value
и >Text
изменятся в соответствии с введенным значением. Если новое значение выходит за рамки заданных значений, то свойство >Text
отображает введенное число, а свойство >Value
принимает значение, которое приписано свойству >Maximum
. Чтобы запретить пользователю указывать числа в поле ввода, нужно для свойства >ReadOnly
задать значение >True
.
При изменении значения элемента >NumericUpDown
инициируется событие >ValueChanged
. Оно возникает только в том случае, если значение меняется программно или когда пользователь нажал кнопки со стрелками. При вводе числа событие не инициируется. В листинге 3.7 продемонстрирован пример использования элемента >NumericUpDown
и обработки события >ValueChanged
.
>private void numericUpDown1_ValueChanged(object sender, EventArgs e) {
> int year = (int)this.numericUpDown1.Value;
> this.lblNote.Text = "Вы выбрали " + year.ToString() + "год";
>}
На рис. 3.5 показано, как функционирует элемент >NumericUpDown
.
Рис. 3.5. Выбор года при помощи элемента NumericUpDown
При работе с элементом >NumericUpDown
следует учитывать одну особенность его функционирования. Предположим, пользователь нажимает кнопку со стрелкой вверх, постоянно увеличивая значение счетчика на величину свойства >Increment
. При достижении максимального значения, определенного в свойстве >Maximum
, счетчик сохранит значение, которое не будет отображено на экране. Теперь, когда пользователь начнет уменьшать значения с помощью кнопки со стрелкой вниз, то отчет пойдет не от максимального значения, которое отображено в поле ввода, а от последнего значения перед достижением максимума.
Стоит проиллюстрировать эту ситуацию. Итак, у нас установлено текущее значение, равное 1992. Значение свойства >Increment
равно 6, а максимум ограничен значением 2006. Последовательные нажатия стрелки вверх доведут значение с 1992 до 2006. Итак, максимальное значение достигнуто. Теперь надо нажать кнопку со стрелкой, направленной вниз. Казалось бы, на экране должно быть показано число 2000 (2006-6), но следует учитывать, что перед превышением максимального значения счетчик запомнил число 2004. Именно от него будет отсчитываться разница, и на экране будет отображено число 1998.