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

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


Скачать 0.74 Mb.
НазваниеА. ОсиповРазработка Windows приложенийна C#
Анкорлекция надежность
Дата06.10.2022
Размер0.74 Mb.
Формат файлаpdf
Имя файла905.pdf
ТипУчебное пособие
#717481
страница3 из 9
1   2   3   4   5   6   7   8   9
ToolTipText: Create new document, Windows cascade и Windows title.
20. В обработчике события Click объекта toolStrip1_ItemClicked добавьте код, который будет реализовывать различные действия в зависимости от нажимаемой кнопки: switch(e.ClickedItem.Tag.ToString())
{ case "NewDoc":
ChildForm newChild = new ChildForm(); newChild.MdiParent = this; newChild.Show(); newChild.Text = newChild.Text+" "+
++openDocuments; break; case "Cascade": this.LayoutMdi (System.Windows.Forms.MdiLayout.Cascade); break; case "Title": this.LayoutMdi
(System.Windows.Forms.MdiLayout.TileHorizontal); break;
}

19 21. Откомпилируйте и запустите приложение.
Проверьте работоспособность кнопок.
Упражнение 4. Использованиеэлементауправления StatusStrip
Элемент управления StatusStrip применяется в программах для вывода информации в строку состояния — небольшую полоску, расположенную внизу приложения. В этом упражнении вы добавите к приложению MdiApplication строку состояния, на которой показывается вариант ориентации окон и выводится текущая дата.
1. Откройте проект MdiApplication.
2. Увеличьте размер формы ParentForm до значения (450;350).
3. Добавьте на форму ParentForm элемент управления StatusStrip.
4. Удалите содержимое поля свойства Text.
5. Щелкните на кнопку выпадающего списка панели и выберите
StatusLabel. Добавится элемент toolStripStatusLabel1 – первая панель для отображения.
6. Создайте еще одну панель аналогичным способом

toolStripStatusLabel2 и установите им следующие свойства:
Объект
СвойствоЗначение
Text
Status
Первая панель
Name spWin
Text
Data
Вторая панель
Name spData
7. Для отображения информации на первой панели вставьте в соответствующие обработчики команд меню и кнопок на панели инструментов следующую строку кода: a. Для каскадной ориентации: spWin.Text="Windows is cascade"; b. Для горизонтальной ориентации: spWin.Text="Windows is horizontal";
8. Для отображения даты на второй панели в конструкторе формы
ParentForm добавьте код: public ParentForm()
{
InitializeComponent();
// Свойству Text панели spData устанавливается текущая дата
spData.Text =
Convert.ToString(System.DateTime.Today.ToLongDateString());
}
9. Откомпилируйте и запустите приложение.
Проверьте работоспособность панели состояния.
Упражнение 5. Работасконтейнернымиэлементамиуправления
Контейнерныеэлементыуправленияэто специализированные элементы управления, выступающие в роли настраиваемого вместилища для других элементов управления. К контейнерным элементам управления относятся Panel иGroupBox. Они предоставляют форме логические и

20 физические подразделы, которые могут группировать другие элементы управления в единообразные подгруппы пользовательского интерфейса.
Например, элемент управления GroupBoxсодержит в себе набор связанных элементов управления RadioButton. Контейнерные элементы управления помогут вам создать ощущение стиля или информационного потока в пользовательском интерфейсе и позволят согласованно управлять элементами управления, которые содержатся в них.
Выполнив это упражнение, вы научитесь создавать формы Windows с использованием различных контейнерных элементов управления.
Созданиепроектасвозможностьюгруппировкиэлементовна вкладках
1. Откройте Visual Studio и создайте новый проект Windows Forms.
Назовите его WinContainer.
2. Перетащите из Toolbox в форму элемент управления TabControl. В окне Properties задайте свойству Dock значение Fill.
3. В окне Properties выберите свойство TabPages, чтобы открыть
TabPage Collection Editor. Добавьте вкладки так, чтобы их стало всего пять.
Задайте свойствам Textэтих пяти элементов управления TabPage
значения GroupBox, Panel, FlowLayoutPanel, TableLayoutPanelи
SplitContainer. Щелкните ОК.
Настройкаконтейнерногоэлемента GroupBox
4. В форме выберите вкладку GroupBox. Перетащите элемент управления GroupBox из Toolbox в элемент управления TabPage.
5. Перетащите в GroupBox два элемента управления RadioButton.
6. Добавьте на вкладку GroupBox вне элемента управления GroupBox
кнопку (элемент управления Button). Для кнопки свойство Text сделайте пустым, а свойству Name укажите значение but.
7. Дважды кликните по кнопке и добавьте код обработчика события установки надписи на кнопке в зависимости от выбранного переключателя
(RadioButton): if (radioButton1.Checked == true) this.but.Text = "First"; else if (radioButton2.Checked == true) this.but.Text = "Second";
Настройкаэлемента Panel
8. Выберите в форме вкладку Panel. Перетащите элемент управления
Panel из Toolbox в элемент управления TabPage. Для элемента Panel задайте свойству Dock значение Fill.
9. Перетащите четыре элемента управления Button из Toolbox в элемент управления Panel.
10. Свойству AutoScroll установите значение True, в этом случае элемент управления Panel будет отображать полосы прокрутки, если элементы находятся за пределами видимых границ.

21
Настройкаэлемента FlowLayoutPanel
11. Выберите в форме вкладкуFlowLayoutPanel.Перетащите элемент управления FlowLayoutPanelиз Toolbox в элемент управления TabPage.
Задайте значение
Fill
свойству
Dock
элемента управления
FlowLayoutPanel.
12. Перетащите четыре элемента управления Button из Toolbox в элемент управления
Panel.
Обратите внимание на размещение добавляемых элементов: по умолчанию порядок следования элементов управления в FlowLayoutPanel — слева направо. Это значит, что элементы управления, расположенные в FlowLayoutPanel, будут находиться в левом верхнем углу и размещаться вправо до тех пор, пока не достигнут края панели. Такое поведение контролируется свойством FlowDirection,
которому может быть задано четыре значения заливки в FlowLayoutPanel:
LeftToRight —
по умолчанию, RightToLeft — справа налево, TopDown —
сверху вниз и BottomUp — снизу вверх.
13. Дважды щелкните кнопку button5 и добавьте в обработчик события button5_Click следующий код: flowLayoutPanel1.SetFlowBreak(button6, true);
Настройкаэлемента TableLayoutPanel
14. Выберите конструктор формы (если это необходимо). В форме выберите вкладку TableLayoutPanel. Перетащите элемент управления
TableLayoutPanel
из
Toolbox в
TabPage.
Задайте свойству
CellBorderStyle (определяет вид ячеек таблицы и их поведение)значение
Inset, а свойству AutoScrollTrue.
15. Перетащите элемент управления Buttonиз Toolbox в левую верхнюю ячейку элемента управления TableLayoutPanel.
16. Дважды щелкните Button9 и добавьте в обработчик события
Button9_Clickследующий код:
Button aButton = new Button(); tableLayoutPanel1.Controls.Add(aButton, 1, 1);
Настройкаэлемента SplitContainer
17. В конструкторе выберите вкладку SplitContainer. Перетащите элемент управления SplitContainerиз Toolbox в TabPage. Задайте свойству BorderStyleзначение Fixed3D.
18. Перетащите два элемента управления Buttonиз Toolbox в Рапеl1
элемента управления SplitContainer. Задайте свойствам Textэтих кнопок значения Fix/Unfix Рапеl1 и Fix/Unfix Splitter. Измените размеры кнопок так, чтобы отображался текст.
19. Добавьте кнопку в Рапе12и задайте свойству Textзначение
Collapse/Uncollapse
Рапеl1. Измените размеры кнопок так, чтобы отображался текст.
20. Дважды щелкните кнопку Fix/Unfix Panel1 и добавьте в обработчик события Click следующий код: if (splitContainer1.FixedPanel == FixedPanel.Panel1) splitContainer1.FixedPanel = FixedPanel.None;

22 else splitContainer1.FixedPanel = FixedPanel.Panel1;
21. Дважды щелкните кнопку Fix/Unfix Splitter и добавьте в обработчик события Click следующий код splitContainer1.IsSplitterFixed =
!(splitContainer1.IsSplitterFixed);
22. Дважды щелкните кнопку Collapse/Uncollapse Panell и добавьте в обработчик события Click следующий код: splitContainer1.Panel1Collapsed =
!(splitContainer1.Panel1Collapsed);
23. Постройте и запустите приложение.
24. На вкладке GroupBox поочередно выбирайте переключатели следите за изменением надписи на кнопке.
25. На вкладке Panel измените размер формы с помощью мыши.
Проверьте, появились ли полосы прокрутки.
26. На вкладке FlowLayoutPanel измените размер формы с помощью мыши. Просмотрите, что автоматически изменилась компоновка.
Щелкните кнопку button5 и проверьте, прервалась ли последовательность на элементе управления button6 (это было реализовано вызовом метода
SetFlowBreak
).
27. На вкладке TableLayoutPanel щелкните кнопку button9, добавится новая кнопка.
28. На вкладке SplitContainer измените размеры формы, а также размеры каждой панели, передвинув Splitter. По очереди щелкайте каждую кнопку и смотрите, как это отражается на возможности элемента управления изменять свои размеры.
Упражнение 6. Элементысподдержкойотображениятекста
Выполнив это упражнение, вы научитесь использовать элемент управления LinkLabel в форме и настраивать его так, чтобы открывалось диалоговое окно, запрашивающее у пользователя имя.
Настройкаэлементауправления LinkLabel
1. Откройте Visual Studio и создайте новый проект Windows Forms.
Назовите его WinLinkLabel.
2. Перетащите два элемента управления LinkLabel из Toolbox в форму.
3. В окне Properties для первого элемента задайте свойству Text
значение Open Form, длявторого – значение Microsoft.
Созданиедиалоговойформы
4. В меню Project выберите Add Windows Form и добавьте в свой проект новую форму Windows с именем Form2.
5. В конструкторе перетащите два элемента управления Button в форму Form2. Задайте свойству Text этих кнопок значения Accept и
Cancel. Расположите их в правом нижнем углу формы.

23 6. Задайте свойству DialogResult кнопки Accept значение ОК, а свойству DialogResult кнопки Cancel — значение Cancel.
7. Перетащите два элемента управления TextBox из Toolbox в форму.
8. Задайте свойству Modifiers каждого элемента управления TextBox
значение Internal. Свойство Text для них оставьте пустым.
9. Перетащите два элемента управления Label из Toolbox в форму и разместите их рядом с элементом управления TextBox.
10. Задайте свойствам Text элементов управления Label значения
&First Name и &Last Name.
11. Проверьте, что свойству UseMnemonic всех надписей установлено значение True.
12. Установите свойство Tablndex в окне Properties, как показано ниже.
Элементуправления
Индексзакладки label1 0 textBox1 1 label2 2 textBox2 3 button1 4 button2 5
Реализацияобработчикасобытиявызовадиалоговогоокна
13. Выберите в конструкторе закладку для формы Form1. Дважды щелкните первый элемент управления linkLabel1 для создания обработчика события linkLabel1_LinkClicked. Добавьте следующий код:
DialogResult aResult;
Form2 aForm = new Form2(); aResult = aForm.ShowDialog(); if (aResult == System.Windows.Forms.DialogResult.OK)
{
MessageBox.Show("Your name is " + aForm.textBox1.Text + "
" + aForm.textBox2.Text);
} linkLabel1.LinkVisited = true;
Реализацияобработчикасобытиявызовавеб-страницы
14. Выберите в конструкторе закладку для формы Form1. Дважды щелкните второй элемент управления
linkLabel2
для создания обработчика события linkLabel2_LinkClicked. Добавьте следующий код:
System.Diagnostics.Process.Start("www.limtu.com"); linkLabel2.LinkVisited = true;
15. Постройте и запустите приложение.
16. Щелкните элемент управления linkLabel – Open Form, чтобы открыть форму. Введите соответствующую информацию в поля ввода и проверьте кнопки Accept и Cancel.
17. Щелкните элемент управления linkLabe2 – Microsoft, чтобы открыть сайт известного учебного центра.

24
Упражнение 7. Элементысподдержкойредактированиятекста
TextBoxэто основной элемент управления, с помощью которого можно принимать вводимый пользователем текст а также отображать текст для пользователя. Существует возможность создавать как поля, отображающие многострочный текст, так и поля отображающие знак пароля вместо реально введенного текста.
Элемент управления MaskedTextBox— это видоизмененный элемент управления
TextBox,
позволяющий задавать предварительно установленный шаблон для принятия пользовательского ввода или отказа от него. С помощью свойства Maskможно указать обязательные или необязательные символы либо тип вводимых символов (буквы или цифры) и применить форматирование для отображения строк.
1. Откройте выполненное вами в предыдущем упражнении решение
WinLinkLabel.
2. Отобразите конструктор для формы Form2.
3. Добавьте элемент управления
TextBox на форму под расположенными ранее элементами. Перетащите элемент управления
Labelв форму и разместите слева от этого элемента.
4. Задайте свойству Textэлемента управления Labelзначение
Address.
5. Для элемента управления TextBoxзадайте следующие свойства:
Свойства
Значение
Комментарий
Multiline
True многострочный
WordWrap
False переход слова с одной строки на другую
ScrollBars
Both отображение полос прокрутки
6. Измените размеры элемента управления TextBoxтак, чтобы он вмещал адрес. При необходимости увеличьте размеры формы и переместите кнопки Accept и Cancel.
7. Перетащите элементы управления MaskedTextBoxи Labelиз
Toolbox на форму и разместите их под ранее введенные элементы.
8. Свойству Textэлемента управления Labelзадайте значение Phone
Number.
9. Задайте значение (999)-000-0000 свойству Maskэлемента управления MaskedTextBox.
10. Задайте значение Internalсвойству Modifiers для последних элементов управления TextBoxи MaskedTextBox.
11. Откройте окно кода формы Form1.
12. В обработчике события linkLabel1_LinkClicked добавьте в блок if,
расположенный под кодом, который вы добавили в предыдущем упражнении, следующий код
MessageBox.Show("Your address is " + aForm.textBox3.Text);
MessageBox.Show("Your phone number is " + aForm.maskedTextBox1.Text);

25 13. Постройте и запустите приложение. Введите в текстовое поле свой телефон. Проверьте, что номер отображается согласно требуемому формату.
Упражнение 8. Добавлениеиудалениеэлементовуправленияврежиме работыприложения
При размещении на форме элемента управления в режиме дизайна, среда создает код, описывающий этот элемент. Если назначить в обработчике заданного элемента управления генерацию аналогичного кода, то в запущенном приложении можно будет добавлять на форму или удалять элементы, активизируя этот обработчик.
Для работы с элементами управления используется объект
ControlsCollection, содержащий ряд методов, основные из которых будут использованы в данном упражнении.
1. Создайте новое приложение и назовите его RegistrationForm.
2. Добавьте на форму три надписи, два текстовых поля, кнопку, элементы CheckBox и GroupBox
3. Установите следующие значения свойств формы и элементов управления:
Объект
Свойство
Значение
FormBorderStyle Fixed3D
Text
Регистрация
Form1
Size
400;310
Location
30;10 label1
Text
Выберите тип регистрации
Location
16; 32 label2
Text
Name
Location
16; 64 label3
Text
PIN
Location
80; 248 button1
Text
Регистрация
Location
96; 32
Text textBox1
Size
184; 20
Location
96; 64
Size
184; 20 textBox2
Text
Location
40; 40
Size
232; 24 checkBox1
Text
Расширенные возможности
Text
Введите регистрационные данные
Location
16; 80 groupBox1
Size
344; 144

26 4. Для реализации возможности добавления и удаления элементов в процессе выполнения программы реализуйте обработчик события
CheckedChanged: щелкните дважды на элементе checkBox1 и добавьте следующий код: if (checkBox1.Checked == true)
{
Label lbl = new Label(); lbl.Location = new System.Drawing.Point(16, 96); lbl.Size = new System.Drawing.Size(32, 23); lbl.Name = "labelll"; lbl.TabIndex = 2; lbl.Text = "PIN2"; groupBox1.Controls.Add(lbl);
TextBox txt = new TextBox(); txt.Location = new System.Drawing.Point(96, 96); txt.Size = new System.Drawing.Size(184, 20); txt.Name = "textboxx"; txt.TabIndex = 1; txt.Text = ""; groupBox1.Controls.Add(txt);
} else{
}
5. Откомпилируйте и запустите приложение. Проверьте, что при установке флажка в ЭУ checkBox “Расширенные возможности” на форме появляется надпись и поле ввода для дополнительных данных.
6. Для удаления ЭУ с формы могут применяться методы: Clear
(удаление всех элементов из коллекции), Remove (удаление элемента из коллекции) и RemoveAt (удаление элемента по заданному индексу). В тело оператора else добавьте код для удаления ЭУ по индексу: int lcv; lcv = groupBox1.Controls.Count;// определяется количество while (lcv > 4)
{ groupBox1.Controls.RemoveAt(lcv - 1); lcv -= 1;
}
7. Запустите приложение.
Убедитесь, что при включении
“Расширенные возможности” дополнительные элементы появляются на форме, а при выключении – исчезают.
Упражнение
1   2   3   4   5   6   7   8   9


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