Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 532
Эндрю Троелсен
private void InitializeComponent() {
…
//
// blueTrackBar
//
this.blueTrackBar.Maximum = 255;
this.blueTrackBar.Name = "blueTrackBar";
this.blueTrackBar.TickFrequency = 5;
this.blueTRackBar.TickStyle = System.Windows.Forms.TickStуle.TopLeft;
this.blueTrackBar.Scroll += new System.EventHandler(this.blueTrackBar.Scroll);
…
}
Заметим, что минимальным значением по умолчанию для TrackBar является 0, поэтому его явно устанавливать не нужно. В обработчиках событий Scroll для каждого TrackBar выполняется вызов вспомогательной функции UpdateColor(), которую нам еще предстоит написать.
private void blueTrackBar_Scroll(object sender, EventArgs e) {
UpdateColor();
}
Функция UpdateColor() отвечает за решение двух главных задач. Во-первых, нужно прочитать текущее значение каждого TrackBar и использовать эти данные для вычисления нового Color с помощью Color.FromArgb(). Имея новый готовый цвет, следует соответствующим образом обновить член-переменную PictureBox (с именем colorBox), чтобы установить текущий цвет фона. Наконец, UpdateColor() комбинирует значения ползунков в строке, размещаемой в элементе Label(lblCurrColor), как показано ниже.
private void UpdateColor() {
// Получение нового цвета на основе значений ползунков.
Color с = Color.FromArgb(redTrackBar.Value, greenTrackBar.Value, blueTrackBar.Value);
// Изменение цвета в PictureBox.
colorBox.BackColor = c;
// Установка текста для надписи.
lblCurrColor.Text = string.Format("Текущие цветовые значения: ({0}, {1}, (2})", redTrackBar.Value, greenTrackBar.Value, blueTrackBar.Value);
}
Заключительным штрихом является установка начальных значений каждого ползунка при начальном появлении формы и отображение текущего цвета, как показано ниже.
public MainWindow() {
InitializeComponent();
CenterToScreen();
// Установка исходного положения ползунков.
redTrackBar.Value = 100;
greenTrackBar.Value = 255;
blueTrackBar.Value = 0;
UpdateColor();
}
Элемент Panel
Как вы уже видели, элемент управления GroupBox может использоваться для того, чтобы логически объединить ряд элементов управления (например, переключателей) и заставить их функционировать во взаимосвязи. Элемент управления Panel в этом смысля является близким к GroupBox. Элементы управления Panel тоже используются для группировки родственных элементов управления в логические единицы. Одним из различий является то, что тип Panel получается из класса ScrollableControl, поэтому Panel может поддерживать полосы прокрутки, чего нет у GroupBox.
Элементы управления Panel могут также использоваться для "консервации" содержимого экрана. Например, если у вас есть группа элементов управления, которые занимают всю нижнюю половину формы, вы можете поместить эту группу в Panel половинного размера и установить значение true (истина) для свойства AutoScroll. Тогда пользователь сможет использовать полосу (или полосы) прокрутки, чтобы просмотреть весь набор элементов. К тому же, если для свойства BorderStyle элемента Panel установить значение None, то этот тип можно будет использовать для группировки набора элементов, которые очень легко показать или скрыть способом. совершенно прозрачным в отношении конечного пользователя.