Элементы UpDown

Элементы UpDown

В рамках Windows Forms предлагается два элемента, функционирующие, как элементы управления с прокруткой (также известные, как элементы управления UpDown). Подобно ComboBox и ListBox, эти новые элементы также позволяют пользователю выбрать элемент из некоторого диапазона возможных элементов.

Разница в том, что при использовании элемента управления DomainUpDown или NumericUpDown варианты выбираются с помощью небольших стрелок, направляющих вверх и вниз. Взгляните, например, на рис. 21.20.

Рис. 21.20. Работа с типами UpDown

С учетом того, что вы уже освоили работу с подобными типами, вы не должны встретить особых сложностей при работе с элементами UpDown. Элемент DomainUpDown дает пользователю возможность сделать выбор из набора строковых данных. Элемент NumericUpDown позволяет выбрать подходящие значений из диапазона числовых данных. Каждый из этих элементов является прямым потомком общего базового класса UpDownBase. В табл. 21.7 описаны некоторые важные свойства этого класса.

Таблица 21.7. Свойства UpDownBase

Свойство Описание InterceptArrowKeys Читает или устанавливает значение, являющееся индикатором того, что пользователю разрешено использовать стрелки вверх и вниз для выбора значений ReadOnly Читает или устанавливает значение, являющееся индикатором того, что текст разрешается менять только с помощью стрелок вверх и вниз, но не с помощью ввода в элемент управления с клавиатуры с целью поиска данной строки Text Читает или устанавливает текущий текст, отображаемый в элементе управления с прокруткой TextAlign Читает или устанавливает значение, задающее параметры выравнивания текста в элементе управления с прокруткой UpDownAlign Читает или устанавливает значение, задающее параметры выравнивания стрелок вверх и вниз в элементе управления с прокруткой, в соответствии со значениями перечня LeftRightAlignment

Элемент управления DomainUpDown добавляет небольшой набор свойств, позволяющих конфигурировать и обрабатывать текстовые данные этого элемента (табл. 21.8).

Таблица 21.8. Свойства DomainUpDown

Свойство Описание Items Позволяет получить доступ к множеству элементов, хранимых в данном элементе управления SelectedIndex Возвращает индекс выбранного в настоящий момент элемента (отсчет начинается с нуля, значение -1 указывает отсутствие выбора) SelectedItem Возвращает выбранный элемент (а не его индекс) Sorted Индикатор необходимости упорядочения строк по алфавиту Wrap Индикатор необходимости циклического возвращения к первому или последнему элементу, когда пользователь достигает крайних элементов списка

Элемент NumericUpDown так же прост (табл. 21.9).

Таблица 21.9. Свойства NumericUpDown

Свойство Описание DecimalPlaces ThousandsSeparator Hexadecimal Используются для указания правил отображения числовых данных Increment Устанавливает числовое значение приращения для элемента управления при щелчке на стрелке вверх или вниз. Значением по умолчанию для приращения является 1 Minimum Maximum Устанавливают верхнюю и нижнюю границы значений для элемента управления Value Возвращает текущее значение элемента управления 

Вот та часть InitializeComponent (), которая задает конфигурацию NumericUpDown и DomainUpDown на этой странице.

private void InitializeComponent() {

 …

 //

 // numericUpDown

 //

 …

 this.numericUpDown.Maximum = new decimal(new int[] {5000, 0, 0, 0});

 this.numericUpDown.Name = "numericUpDown";

 this.numericUpDown.Thousands.Separator = true;

 //

 // domainUpDown

 //

 this.domainUpDown.Items.Add("Второй вариант");

 this.domainUpDown.Items.Add("Последний вариант");

 this.domainUpDown.Items.Add("Первый вариант");

 this.domainUpDown.Items.Add("Третий вариант");

 this.domainUpDown.Name = "domainUpDown";

 this.domainUpDown.Sorted = true;

 …

}

Обработчик события Click для типа Button этой страницы просто запрашивает у каждого типа его текущее значение и размещает его в рамках подходящего типа Label (с именем lblCurrSel) в виде форматированной строки, как показано ниже.

private void ntnGetSelections_Click(object sender, EventArgs e) {

 // Получение информации от элементов UpDown.…

 lblCurrSel.Text = string.Format("Строка: {0} Число: {1}", domainUpDown.Text, numericUpDown.Value);

}