Чтобы проиллюстрировать остальные "экзотические" элементы управления, давайте построим новую форму, поддерживающую TabControl (элемент управления вкладками). Вы, возможно, знаете, что TabControl позволяет селективно скрывать или показывать страницы связанного содержимого с помощью щелчка на соответствующих "закладках". Сначала создайте новое приложение Windows Forms с именем ExoticControls и поменяйте имя исходной формы на MainWindow.
Затем добавьте TabControl в окно проектирования формы и, используя окно свойств, с помощью коллекции Tab Pages откройте редактор страниц (в соответствующей строке окна свойств щелкните на кнопке с многоточием). Появится диалоговое окно конфигурации инструмента. Добавьте в нем шесть страниц и установите свойства Text и Name страниц в соответствии с тем, как показано на рис. 21.17.
Рис. 21.17. Многостраничный элемент управления TabControl
При создании элемента управления TabControl следует учитывать то, что каждая страница представляется объектом TabPage, содержащимся во внутренней коллекции страниц TabControl. Сконфигурированный объект TabControl (подобно любому другому элементу графического интерфейса в форме) добавляется в коллекцию Controls формы. Рассмотрите соответствующий фрагмент метода InitializeComponent().
private void InitializeComponent() {
…
// tabControlExoticControls
//
this.tabControlExoticControls.Controls.Add(this.pageTrackBars);
this.tabControlExoticControls.Controls.Add(this.pagePanels);
this.tabControlExoticControls.Controls.Add(this.pageUpDown);
this.tabControlExoticControls.Controls.Add(this.pageErrorProvider);
this.tabControlExpticControls.Controls.Add(this.pageTreeView);
this.tabControlExoticControls.Controls.Add(this.pageWebBrowser);
this.tabControlExoticControls.Location = new System.Drawing.Point(13, 13);
this.tabControlExoticControls.Name = "tabControlExoticControls";
this.tabControlExoticControls.SelectedIndex = 0;
this.tabControlExoticControls.Size = new System.Drawing.Size(463, 274);
this.tabControlExoticControls.TabIndex = 0;
this.Controls.Add(this.tabControlExoticControls);
}
Теперь, имея базовую форму, поддерживающую набор вкладок, вы можете настроить каждую страницу для демонстрации остальных "экзотических" элементов управления. Сначала давайте рассмотрим роль TrackBar.
Замечание. Элемент управления TabControl обеспечивает поддержку событий Selected, Selecting, Deselected и Deselecting. Это может оказаться полезным тогда, когда требуется динамически генерировать соответствующие элементы в пределах страницы.
Элемент управления TrackBar дает пользователям возможность выбора из диапазона значений, используя нечто, похожее на полосу прокрутки. При работе с этим типом нужно установить минимальное и максимальное значения диапазона, минимальное и максимальное значения приращения, а также начальное положение ползунка. Соответствующие значения можно установить с помощью свойств, описанных в табл. 21.6.
Таблица 21.6.Свойства TrackBar
Свойства |
Описание |
LargeChange |
Число делений, на которое изменяется положение ползунка TrackBar, когда происходит событие, предполагающее "большое" изменение (например, щелчок кнопки мыши, когда указатель находится в области направляющей ползунка, или нажатие клавиш ‹PageUp› и ‹PageDown›) |
Maximum Minimum |
Верхняя и нижняя границы диапазона TrackBar |
Orientation |
Ориентация для TrackBar. Действительными являются значения из перечня Orientation (горизонтальная или вертикальная ориентация) |
SmallChange |
Число делений, на которое изменяется положение TrackBar, когда происходит событие, предполагающее "малое" изменение (например, нажатие клавиш со стрелками) |
TickFrequency |
Влияет на число делений, которое требуется изобразить. Например, для TrackBar c верхним пределом 100 нерационально изображать все 100 делений для элемента управления длиной 5 см. Если установить свойство TickFrequency равным 5, для TrackBar будет показано только 20 делений (одно деление будет представлять 5 единиц) |
TickStyle |
Задает внешний вид элемента управления TrackBar. От этого значения (которое должно соответствовать значениям перечня TickStyle) зависит и то, где будут изображены деления относительно ползунка, и то, как будет выглядеть сам ползунок |
Value |
Читает или устанавливает значение, задающее текущее положение ползунка TrackBar. С помощью этого свойства можно получить числовое значение, содержащееся в TrackBar, чтобы использовать его в приложении |
Для примера обновите первую вкладку элемента TabControl, разместив на ней три элемента TrackBar, для каждого из которых верхнее значение диапазона равно 255, а нижнее – нулю, При смещении пользователем любого из ползунков приложение перехватывает событие Scroll и динамически создает новый тип System.Drawing.Color на основе новых значений ползунков. Этот тип Color будет использоваться для того, чтобы отображать соответствующим цветом элемент PictureBox (с именем colorBox) и соответствующие RGB-значения в пределах типа Label (с именем lblCurrColor). На рис. 21.18 первая страница окна показана в завершенном виде.
Читать дальше