Главная страница

лекция надежность. А. ОсиповРазработка Windows приложенийна C#


Скачать 0.74 Mb.
НазваниеА. ОсиповРазработка Windows приложенийна C#
Анкорлекция надежность
Дата06.10.2022
Размер0.74 Mb.
Формат файлаpdf
Имя файла905.pdf
ТипУчебное пособие
#717481
страница2 из 9
1   2   3   4   5   6   7   8   9
Add для добавления формы.
5. В появившемся окне Inheritance Picker, в котором отображаются все формы текущего проекта, выберите базовую форму Form1 и нажмите
OK.
6. Постройте проект.
7. Откройте форму nForm в режиме конструктора. Проверьте, что она имеет треугольную форму и свойства базовой формы и элемента управления наследованы.
8. Настройте свойства производной формы: a. для кнопки: i. свойство Text – Hello!!! ii. свойство BackColor – Brown b. для формы: свойство BackColor – Blue
9. Постройте проект.
10. Задайте производную форму в качестве стартовой, указав в функции Main следующий код:
Application.Run(new nForm());
11. Постройте и запустите приложение.
Должна открыться производная форма со своими свойствами. Проверьте, наследуется ли закрытие формы кнопкой.
Упражнение 4. Создание MDI-приложения
В этом упражнении Вы создадите MDI-приложение с родительской формой, загружающей и организующей дочерние формы. Также Вы познакомитесь с элементом управления MenuStrip, который позволяет создать меню формы.
Созданиеновогопроектасбазовойформой
1. Создайте новый проект
Windows
Forms, укажите имя
MdiApplication.
2. Переименуйте файл Form1.cs на ParentForm.cs.
3. Для формы задайте следующие свойства:
Name
ParentForm
Size
420; 320
Text
Parent Form
4. Проверьте, что произошли изменения в функции Main так, чтобы форма ParentForm стала стартовой.

11 5. Откройте файл ParentForm.cs в режиме конструктора.
6. Для свойства формы IsMdiContainer задайте значение True.
Таким способом эта форма будет определена как родительская форма MDI.
Созданиеменюдляработысформами
7. Создайте пункт меню File: a. Откройте ПИ Toolbox, добавьте на форму ЭУ MenuStrip и задайте для его свойства Name значение MdiMenu. b. Выделите меню в верхней части формы и задайте имя первого пункта меню &File. c. Для свойства Name пункта меню File задайте значение
FileMenuItem. d. Раскройте меню File. e. Выделите элемент, появившейся под элементом File, и задайте его как &New. f. Для свойства Name пункта меню New задайте значение
NewMenuItem. g. Выделите элемент, появившийся под элементом New, и задайте его как &Exit. h. Для свойства Name пункта меню Exit задайте значение
ExitMenuItem. i. Дважды кликните левой кнопкой мыши по пункту меню Exit для создания обработчика события Click. j. В обработчик события Click для пункта меню Exit добавьте следующий код: this.Close();
8. Создайте пункт меню Window: a. Переключитесь в режим конструктора. b. Выделите второй пункт меню справа от File и задайте его значением &Window. c. Для свойства Name пункта меню Window задайте значение
WindowMenuItem. d. Раскройте меню Window. e. Выделите элемент, появившейся под элементом Window, и задайте для его свойства Text значение &Cascade. f. Для свойства Name пункта меню Cascade задайте значение
WindowCascadeMenuItem. g. Выделите элемент, появившийся под элементом Cascade, и задайте для его свойства Text значение &Tile. h. Для свойства Name пункта меню Tile задайте значение
WindowTileMenuItem. i. Дважды кликните левой кнопкой мыши по пункту меню
Cascade для создания обработчика события Click: this.LayoutMdi (System.Windows.Forms.MdiLayout.Cascade);

12 j. Вернитесь в режим конструктора и дважды кликните левой кнопкой мыши по пункту меню Tile. k. В обработчик события Click для пункта меню Tile добавьте следующий код: this.LayoutMdi(System.Windows.Forms.MdiLayout.TileHorizontal);
9. Реализуйте список открытых окон в меню Window: a. В конструкторе выберите компонент Mdimenu. Укажите в свойстве MdiWindowListItem имя пункта, созданного для этого – WindowMenuItem.
Созданиедочернейформы
10. Создайте дочернюю форму: a. Выберите пункт меню Project | Add Windows Form. b. Задайте имя формы ChildForm.cs. c. Для свойства Text формы задайте значение Child Form. d. На ПИ Toolbox дважды кликните левой кнопкой мыши по ЭУ
RichTextBox и задайте для его свойства Name значение
ChildTextBox. e. Для свойства Dock ЭУ RichTextBox задайте значение Fill. f. Удалите существующий текст (если он есть) для свойства Text
ЭУ RichTextBox и оставьте его пустым. g. На ПИ Toolbox дважды кликните левой кнопкой мыши по ЭУ
MenuStrip. h. Для свойства Name ЭУ MenuStrip задайте значение
ChildWindowMenu. i. Выделите меню в верхней части формы и наберите текст
F&ormat. j. Для свойства Name пункта меню Format задайте значение
FormatMenuItem, для свойства MergeAction установите значение Insert, а свойству MergeIndex – 1. В этом случае меню Format будет располагаться после File при объединении базового и дочерних меню. k. Выделите элемент, появившийся под элементом Format, и наберите текст &Toggle Foreground. l. Для свойства Name пункта меню Toggle Foreground задайте значение ToggleMenuItem. m. Дважды кликните левой кнопкой мыши по пункту меню
Toggle Foreground и добавьте следующий код в обработчик события Click: if (ToggleMenuItem.Checked)
{
ToggleMenuItem.Checked = false;
ChildTextBox.ForeColor = System.Drawing.Color.Black;
} else
{
ToggleMenuItem.Checked = true;

13
ChildTextBox.ForeColor = System.Drawing.Color.Blue;
}
Отображениедочернейформы
11. Отобразите дочернюю форму в родительской форме: a. Откройте ParentForm.cs в режиме конструктора. b. Дважды кликните левой кнопкой мыши по кнопке New в меню
File для создания обработчика события Click. c. Добавьте следующий код для обработчика события Click для пункта меню New:
ChildForm newChild = new ChildForm(); newChild.MdiParent = this; newChild.Show();
Работасприложением
12. Проверьте работу приложения: a. Постройте и запустите приложение. b. Когда появится родительская форма, выберите пункт меню
File | New. c. В родительском окне появится новая дочерняя форма.
Обратите внимание на то, дочернее меню сливается с родительским и пункты меню упорядочиваются в соответствие со свойством MergeIndex, установленным ранее. d. Наберите какой-нибудь текст в дочернем окне и воспользуйтесь пунктом меню Format для изменения цвета шрифта текста. e. Откройте еще несколько дочерних окон. f. Выберите пункт меню Window | Tile. Обратите внимание на то, что дочерние окна выстраиваются в упорядоченном порядке. g. Закройте все дочерние окна. h. Обратите внимание на то, что, когда закроется последнее дочернее окно, меню родительской формы изменится, и оттуда исчезнет пункт Format. i. Для закрытия приложения выберите пункт меню File | Exit.
13. Обратите внимание, что заголовок у дочерних окон одинаковый.
При создании нескольких документов, например в Microsoft Word, они называются ДокументN, где N — номер документа. Реализуйте эту возможность: a. Откройте код родительской формы и в классе ParentForm объявите переменную openDocuments: private int openDocuments = 0; b. К свойству Text дочерней формы добавьте счетчик числа открываемых документов (в коде обработчика события Click
для пункта меню New): newChild.Text = newChild.Text+" "+ ++openDocuments;

14 14. Запустите приложение. Теперь заголовки новых документов содержат порядковый номер.
Дополнительноеупражнение
Для углубления знаний о добавлении и настройке форм Windows выполните следующие задания.
Задание 1.
Создайте пользовательскую форму, которая во время выполнения будет иметь овальное очертание. Данная форма должна содержать функциональность, дающую возможность пользователю закрывать ее во время выполнения.
Рекомендация: при разработке формы в виде эллипса используйте следующий код:
// Добавление эллипса, вписанного в прямоугольную форму
// заданной ширины и высоты myPath.AddEllipse(0, 0, this.Width, this.Height);
Задание 2
. Создайте приложение с двумя формами и установите вторую форму как стартовую. Сделайте так, чтобы при запуске стартовая форма разворачивалась до максимальных размеров и содержала функциональность, дающую возможность пользователю открыть первую форму, отображающуюся в виде ромба зеленого цвета с кнопкой (в центре ромба) закрытия формы с надписью GREENPEACE.
Лабораторнаяработа 2. Работасэлементамиуправления
Цельработы
Изучение способов использования элементов управления и получение навыков по обработке событий.
Упражнение 1. Обработкасобытий Click и MouseMove
Элементы управления – это компоненты, объединяющие графический интерфейс с предварительно разработанной функциональностью.
Элементы управления представляют собой многократно используемые блоки кода, предназначенные для выполнения определенных задач. Все элементы управления являются производными базового класса Control, а значит, тоже используют различные свойства, задающие размер, расположение и другие основные аспекты элементов управления.
Выполнив первое упражнение этого задания, вы создадите простое приложение, отслеживающее события мыши, которые происходят у конкретного элемента управления.
Размещениенаформеэлементовуправления
1. Создайте новое Windows приложение. Назовите его WinQuestion.
2. Расположите на форме две кнопки Button и надпись Label, разместите их по-своему усмотрению.
3. Установите следующие свойства элементов управления и формы:

15
ОбъектСвойство
Значение
FormBorderStyle Fixed3D
Size
350; 200
Form1
Text
Насущный вопрос label1
Text
Вы довольны своей зарплатой?
Name btnyes
Button1
Text
Да
Name btnno
Button2
Text
Нет
4. Щелкните дважды по кнопке "Да". В обработчике этой кнопки добавьте следующий код:
MessageBox.Show("Мы и не сомневались, что Вы так думаете!");
5. Выделите кнопку "Нет". В окне Properties переключитесь в окно событий и дважды щелкните в поле MouseMove.
6. В обработчике этого события добавьте код для связывания движения мыши с координатами кнопки и указания координат, куда кнопка будет перемещаться: btnno.Top -= e.Y; btnno.Left += e.X; if (btnno.Top < -10 || btnno.Top > 100) btnno.Top = 60; if (btnno.Left < -80 || btnno.Left > 250) btnno.Left = 120;
7. Запустите приложение и нажмите на каждую из кнопок.
Упражнение 2. Работасосписками
Основными элементами управления списком являются ListBox,
ComboBox и CheckedListBox. Несмотря на некоторые отличия во внешнем виде и разные функциональные возможности, они одинаково формируют и представляют списки данных и включают в себя коллекцию
Items, которая систематизирует элементы, содержащие один из этих элементов управления.
ListBox — самый простой элемент управления списка. Он служит главным образом для отображения простого списка элементов в пользовательском интерфейсе, по которому легко перемещаться.
CheckedListBox – помечаемый список. Является разновидностью простого списка. Его дополнительное достоинство — в наличии чекбоксов рядом с каждым элементом списка. Пользователь имеет возможность отметить один или несколько элементов списка, выставив напротив его флажок.
ComboBox – выпадающий список. Постоянно на форме представлено только одно значение этого списка. При необходимости пользователь может раскрыть список и выбрать другое интересующее его значение или ввести собственное.

16
Созданиеприложения, использующеесписок
1. Создайте новый проект Windows Forms, укажите имя TestList.
2. Добавьте на форму следующие элементы управления: a. GroupBox, b. CheckedListBox (поместите в GroupBox) c. ComboBox
d. три элемента Button.
3. Установите следующие свойства формы и элементов управления:
Объект
Свойство
Значение
FormBorderStyle Fixed3D
Text
Работа со списками
Form1
Size
410;310 groupBox1
Text
Список участников
CheckedListBox Name memberList
Name peopleList
ComboBox
Text
Name buttonAdd
Button1
Text
Добавить
Name buttonDelete
Button2
Text
Удалить
Name buttonSort
Button3
Text
Сортировать
4. Проинициализируйте элемент управления ComboBox списком предполагаемых участников. Для этого в окне свойств peopleList выберите свойство Items. Откройте окно String Collection Editor, нажав на кнопку с тремя точками в поле Items. Добавьте в окно Ф.И.О. нескольких участников. Нажмите OK.
5. Добавьте обработчики для кнопок Добавитьи Удалить, два раза щелкнув левой кнопкой мыши по каждой из кнопок.
6. В тело обработчика события кнопки Добавитьвставьте следующий код: if (peopleList.Text.Length != 0)
{ memberList.Items.Add(peopleList.Text);
} else MessageBox.Show("Выберите элемент из списка или введите новый");
7. Для реализации удаления элементов из списка введите код в тело обработчика события кнопки Удалить: while (memberList.CheckedIndices.Count > 0) memberList.Items.RemoveAt(memberList.CheckedIndices[0]);
8. Для реализации сортировки элементов введите код в тело обработчика события кнопки Сортировать: memberList.Sorted = true;

17 9. Откомпилируйте и запустите приложение. Заполните список участников, выбирая их из элемента ComboBox. Запишите новые данные в этот элемент и добавьте их в список. Отсортируйте список участников.
Упражнение 3. Созданиеииспользованиеэлементауправления ToolStrip
ToolStripэто элемент управления, разработанный с целью упрощения создания пользовательских панелей инструментов, которые выглядят и работают, как панели инструментов Microsoft Office и Microsoft
Internet Explorer. Используя элемент управления ToolStrip, вы можете быстро разрабатывать легко настраиваемые панели инструментов профессионального вида.
Добавлениенаформушаблонапанелиинструментов
1. Откройте проект MdiApplication.
2. Откройте форму ParentForm в режиме конструктора.
3. Добавьте на форму ЭУ ToolStrip.
4. На форме откройте выпадающий список ЭУ ToolStrip и выберите
button – добавится элемент toolStripButton1. В панели инструментов он представлен в виде кнопки с рисунком, обозначающим функцию, которую этот элемент содержит.
5. Снова откройте выпадающий список ЭУ ToolStrip и выберите
Separator – добавится элемент, который отделяет одни элементы панели инструментов от других.
6. Справа от разделителя добавьте еще две кнопки – элементы
toolStripButton2 и toolStripButton3.
7. В итоге вы должны получить три кнопки, отделенные одним разделителем.
Отображениерисунканаэлементахпанелиуправления
8. Выберите первую кнопку. Убедитесь, что в окне Properties свойству DisplayStyleзадано значение Image.
9. В окне Properties выберите изображение элемента управления, щелкнув свойство Imageи выбрав соответствующее изображение или путь к нему в диалоговом окне Select Resource. Если у Вас есть готовые файлы подходящих изображений, то выберите их, в противном случае укажите любой рисунок из папки Моирисунки. Набор готовых изображений можно найти в графических файлах в папке \Microsoft Visual Studio
9.0\Common7\VS2008ImageLibrary\ .
10. Повторите предыдущие два пункта для остальных кнопок.
Созданиеграфическихизображенийкнопокпанелиинструментов
11. Если Вас не устраивает вид готовых рисунков, то можно для придания кнопкам графических изображений самостоятельно их создать.
Для работы с изображениями в среде разработки существует Image Editor.
Он позволяет создать изображения с использованием простейших инструментов.
12. Для создания файла с изображением выберите меню
File | New | File... В появившемся окне New File выберите тип файла

18
“Файл точечного рисунка”, нажмите Open. Появится пустое изображение с дополнительной панелью управления. В основном меню появится новый пункт меню Image. Дляотображения панели с палитрой компонент выберите в меню пункт Image | Show Colors Window (Показатьокно выборацвета).
13. Создайте по своему усмотрению изображение для кнопки New, например, в виде белого листа и сохраните изображение в файл с именем
Icon_New.bmp в каталог с решением.
14. Повторите действия для создания иконок для других кнопок, например, в виде нарисованных распылителем букв C и T. Сохраните изображения в каталог с решением в файлы с именами
Icon_Windows_Cascade.bmp и Icon_Windows_Title.bmp соответственно.
15. Выполните действия для указания новых изображений этим кнопкам.
16. Сохраните и запустите проект.
Проверьте вид и работоспособность кнопок.
Добавлениеобработчиковсобытийдлякнопок
17. Добавьте обработчик события Click объекта toolStrip1, щелкнув два раза указателем мыши по имени события Click на закладке событий в окне свойств. В программу добавится функция toolStrip1_ItemClicked как обработчик события, происходящего при нажатии кнопки на панели инструментов.
18. В окне Properties для toolStripButton1 всвойстве Tag запишите
NewDoc. Аналогично укажите для toolStripButton2 и toolStripButton3 для свойства Tag значения Cascade и Title соответственно.
19. Укажите для кнопок всплывающие подсказки в свойстве
1   2   3   4   5   6   7   8   9


написать администратору сайта