- •Содержание
- •Введение
- •2. Основные контролы (компоненты) Windows- приложения
- •2.2. Контрол TextBox
- •2. 3. Контрол ComboBox
- •2.4. Контрол ListBox
- •Панели GroupBox и Panel
- •2. 6. Класс Random и его функции
- •3.1. Вывод текстовой информации в контрол Label
- •3.2. Вывод текстовой информации в контрол TextBox
- •Вывод текстовой информации
- •3.3. Программный вывод текста в TextBox
- •3.4. Вывод текстовой информации в контрол RichTextBox
- •Лабораторная работа № 2 Работа с контролами CheckBox, RadioButton и диалоговыми окнами MessageBox
- •1. Контрол CheckBox
- •2. Контрол RadioButton
- •3. Диалоговые окна MessageBox
- •Лабораторная работа № 3 Построение графиков функций
- •Лабораторная работа № 4 Создание Windows приложения «Редактор текста» в среде разработки Visual Studio
- •Создание редактора текста
- •Работа с файлами документа
- •Печать документа
- •Закрытие главного окна редактора текста
- •Реализация функций меню «Правка»
- •Реализация функций меню «Формат»
- •Выравнивание параграфов
- •Реализация функций меню «Справка»
- •Создание инструментальной панели
- •Строка состояния
- •Лабораторная работа № 5
- •Создание диаграммы вариантов использования
- •В среде проектирования Rational Rose
- •Общие сведения о Rational Rose
- •Диаграммы вариантов использования
- •Пример диаграммы ви для финансовой торговой системы приведен на рис.5.3.
- •Связи «расширение» и «использование». Кроме связей между действующими лицами и ви на диаграмме существуют 2 других типа связей. Это связи «расширение» и «использование».
- •Создание диаграммы вариантов использования
- •Добавление ассоциаций
- •Добавление связи расширения
- •Добавление описаний к вариантам использования
- •Добавление описаний к действующему лицу
- •Прикрепление файла к варианту использования
- •Лабораторная работа № 6 Создание диаграммы классов в среде проектирования Rational Rose
- •Создание диаграммы классов Настройка
- •Технология создания диаграммы классов
- •Добавление атрибутов и операций
- •Настройка
- •Добавление нового класса
- •Добавление атрибутов
- •Добавление операций к классу Orderltem
- •Подробное описание операций с помощью диаграммы классов
- •Подробное описание операций с помощью браузера
- •Подробное описание операций
- •Добавление связей
- •Добавление ассоциаций
- •Лабораторная работа№ 7 Создание диаграмм взаимодействия в Rational Rose
- •Создание диаграммы взаимодействия
- •Настройка
- •Создание диаграммы Последовательности
- •Добавление на диаграмму действующего лица и объектов
- •Добавление сообщений на диаграмму
- •Добавление на диаграмму дополнительных объектов
- •Назначение ответственностей объектам
- •Соотнесение объектов с классами
- •Соотнесение сообщений с операциями
- •Создание кооперативной диаграммы
- •Создание кооперативной диаграммы
- •Добавление действующего лица и объектов на диаграмму
- •Добавление сообщений на диаграмму
- •Добавление на диаграмму дополнительных объектов.
- •Назначение ответственностей объектам
- •Соотнесение объектов с классами (если классы были созданы при разработке описанной выше диаграммы последовательности)
- •Соотнесение объектов с классами (если вы не создавали описанную выше диаграмму последовательности)
- •Соотнесение сообщений с операциями (если операции были созданы при разработке описанной выше диаграммы последовательности)
- •Соотнесение сообщений с операциями (если вы не создавали описанную выше диаграмму последовательности)
- •Лабораторная работа№ 8 Создание диаграмм состояний в Rational Rose
- •Описание состояний
- •Добавление переходов
- •Описание переходов
- •Лабораторная работа № 9 Тестирование программ
- •Лабораторная работа № 11 Тестирование программ
- •Лабораторная работа № 12 Тестирование программ
- •Список литературы
Панели GroupBox и Panel
Создавая форму главного окна для этого приложения, сначала мы перетащили в нее из инструментальной панели Toolbox элементы управления GroupBox и Panel.
Элемент управления GroupBox снабжается рамкой с надписью, объясняющей назначение объединяемых внутри рамки элементов управления. Что же касается панели Panel, то она представляет собой прямоугольное окно без надписи, внутри которого можно помещать произвольные объекты. Эта панель может иметь полосы прокрутки.
Добавление объектов в панели
На этапе инициализации приложения создается сам элемент управления GroupBox (как объект класса System.Windows.Forms.GroupBox), и флажки с зависимой фиксацией:
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.radioButtonBkgRed = new System.Windows.Forms.RadioButton();
this.radioButtonBkgGreen = new System.Windows.Forms.RadioButton();
this.radioButtonBkgBlue = new System.Windows.Forms.RadioButton();
this.radioButtonBkgWhite = new System.Windows.Forms.RadioButton();
Далее флажки добавляются в элемент управления GroupBox при помощи метода AddRange:
//
// groupBox1
//
this.groupBox1.Controls.AddRange(
new System.Windows.Forms.Control[]
{
this.radioButtonBkgWhite,
this.radioButtonBkgBlue,
this.radioButtonBkgGreen,
this.radioButtonBkgRed
});
Таким образом, флажки оказываются добавленными к панели groupBox1 класса GroupBox. Далее программа настраивает свойства панели GroupBox, определяющие ее расположение, размеры, текст надписи и т.д.:
this.groupBox1.Location = new System.Drawing.Point(24, 16);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(152, 136);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Укажите цвет фона";
Аналогичным образом создается панель panel1 класса Panel, надпись и флажки, расположенные внутри панели:
this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.radioButtonForeRed = new System.Windows.Forms.RadioButton();
this.radioButtonForeGreen = new System.Windows.Forms.RadioButton();
this.radioButtonForeBlue = new System.Windows.Forms.RadioButton();
this.radioButtonForeBlack = new System.Windows.Forms.RadioButton();
Все объекты, расположенные внутри правой панели, добавляются в нее все тем же методом AddRange:
//
// panel1
//
this.panel1.Controls.AddRange(
new System.Windows.Forms.Control[]
{
this.radioButtonForeBlack,
this.radioButtonForeBlue,
this.radioButtonForeGreen,
this.radioButtonForeRed,
this.label1
});
this.panel1.Location = new System.Drawing.Point(192, 8);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(152, 144);
this.panel1.TabIndex = 1;
Обратите внимание, что в панель panel1 добавляются не только флажки, но и надпись label1 класса Label.
Обработка событий
Для каждой группы флажков мы создаем свой собственный обработчик события CheckedChanged. Это событие возникает, когда пользователь изменяет состояние флажка, устанавливая или снимая отметку.
Чтобы создать обработчик событий bkgChanged для группы флажков, отвечающих за изменение цвета фона нашей надписи, выделите любой флажок в группе «Укажите цвет фона». Затем в окне Properties откройте вкладку событий, введите в поле CheckedChanged строку bkgChanged и нажмите клавишу Enter. В результате будет создано тело обработчика событий bkgChanged.
Далее выделите по очереди все остальные флажки группы. Укажите цвет фона, и назначьте для них обработчик событий bkgChanged при помощи только что упомянутого окна Properties. Таким образом, изменение состояния всех флажков группы «Укажите цвет фона» будет отслеживаться единым обработчиком событий bkgChanged.
Далее повторите эту операцию для группы флажков «Укажите цвет текста», расположенной в правой части главного окна приложения. Назначьте для них обработчик событий foreChanged.
Ниже приведены модифицированные исходные тексты обработчиков событий bkgChanged и foreChanged:
private void bkgChanged(object sender, System.EventArgs e)
{
RadioButton rb = (RadioButton)sender;
switch(rb.Text)
{
case "Красный":
{
label2.BackColor = Color.LightCoral;
break;
}
case "Зеленый":
{
label2.BackColor = Color.LightGreen;
break;
}
case "Синий":
{
label2.BackColor = Color.LightBlue;
break;
}
case "Белый":
{
label2.BackColor = Color.White;
break;
}
}
}
private void foreChanged(object sender, System.EventArgs e)
{
RadioButton rb = (RadioButton)sender;
switch(rb.Text)
{
case "Красный":
{
label2.ForeColor = Color.Red;
break;
}
case "Зеленый":
{
label2.ForeColor = Color.Green;
break;
}
case "Синий":
{
label2.ForeColor = Color.Blue;
break;
}
case "Белый":
{
label2.ForeColor = Color.White;
break;
}
}
}
Эти обработчики событий работают по одинаковому алгоритму. Вначале они сохраняют в переменной rb идентификатор флажка, состояние которого было изменено. Затем обработчики извлекают текст надписи, расположенной возле флажка. В зависимости от этого текста, обработчики изменяют цвет фона или текста надписи label2, расположенной в нижней части главного окна нашего приложения.
При необходимости приложение может обрабатывать и другие события, создаваемые флажками с зависимой фиксацией. Полный список и кроткое описание этих событий можно просмотреть на вкладке событий окна Properties . Обрабатывая, например, события MouseEnter и MouseLeave, можно динамически изменять внешний вид флажка, когда над ним находится курсор мыши.
