В компонент ToolBar вставить выбор размера шрифта для выделенного текста и кнопку закрытия всех дочерних окон.




Label, LinkLabel и PictureBox

 

Программы, как правило, содержат пункт главного меню "О программе", где в отдельном окне помещается логотип компании, лицензионное соглашение, гиперссылки на сайт разработчика и другая информация. Создадим подобную форму, используя новые элементы управления — Label, LinkLabel и PictureBox.

Итак, добавим в наш проект новую форму и назовем ее About.cs. Установим следующие свойства формы:

About, форма, свойство Значение
Name About
FormBorderStyle FixedSingle
MaximizeBox False
MinimizeBox False
Size 318; 214
Text About Notepad C#

Добавим на форму элемент управления PictureBox — он представляет собой подложку, размещаемую на форме, которая может содержать в себе рисунки для отображения. В поле свойства Image щелкаем на кнопку (…) и выбираем рисунок по адресу Code\Glava2\NotepadCSharp\Icon\logo.gif. Поскольку logo.gif является анимированным рисунком, элемент PictureBox начинает воспроизводить анимацию сразу же, даже в режиме дизайна.

Из окна ToolBox перетащим на форму кнопку, Label и LinkLabel. В поле свойства Text кнопки введем &OK. Элемент Label предназначен для размещения на форме надписей, которые в готовом приложении будут доступны только для чтения. В поле свойства Text введем Notepad C# 2006 All rights reserved. Элемент LinkLabel отображает текст на форме в стиле web-ссылок и обычно используется для создания навигации между формами или ссылки на сайт. В поле Text этого элемента вводим адрес гипотетического сайта — www.notepadcsharp.com. Пользователь будет переходить на сайт, нажимая на эту ссылку, поэтому реализуем переход по гиперссылке для события Click. В окне Properties щелкаем дважды на событии Click и добавляем обработчик:

private void linkLabel1_Click(object sender, System.EventArgs e){ //Добавляем блок для обработки исключений — по разным причинам //пользователь может не получить доступа к ресурсу. try { //Вызываем метод VisitLink, определенный ниже VisitLink(); } catch (Exception ex) { MessageBox.Show(ex +"Unable to open link that was clicked."); }} //Создаем метод VisitLinkprivate void VisitLink(){ // Изменяем цвет посещенной ссылки, программно //обращаясь к свойству LinkVisited элемента LinkLabel linkLabel1.LinkVisited = true; //Вызываем метод Process.Start method для запуска браузера, //установленного по умолчанию, и открытия ссылки System.Diagnostics.Process.Start("https://www.notepadcsharp.com");}

Кнопка OK просто будет закрывать форму:

 

private void button1_Click(object sender, System.EventArgs e){ this.Close();}

 

В пункте главного меню About Programm… формы frmmain добавляем процедуру вызова формы About:

private void mnuAbout_Click(object sender, System.EventArgs e){ //Создаем новый экземпляр формы About About frm = new About(); frm.Show();}

Запускаем приложение (рис. 2.26):

Рис. 2.26. Окно About Notepad C#

Режимы запуска окон

 

В приложении Notepad C# с открытой формой About без труда можно вернуться к другим пунктам меню программы или документу, т. е. форма About позволяет переключать фокус. Такое поведение дочерних форм характерно для панелей инструментов в программах и называется немодальным. Наоборот, форма, запущенная в модальном режиме, не позволит работать с приложением до тех пор, пока мы не закроем эту форму. Для открытия формы в модальном режиме используется метод ShowDialog:

private void mnuAbout_Click(object sender, System.EventArgs e){ //Создаем новый экземпляр формы About About frm = new About(); frm.ShowDialog();}

ToolBar и ImageList

Панели инструментов ToolBar содержат наборы кнопок, как правило, дублирующих пункты главного меню. В графических программах панели инструментов — основное средство работы. Откроем снова приложение Notepad C# и перетащим из окна ToolBox элемент управления ToolBar. На кнопках панели обычно располагаются иконки, поэтому, прежде чем мы начнем заниматься ими, нам следует подумать о рисунках. Добавим на форму элемент управления ImageList, применяемый для хранения рисунков, которые могут быть использованы для оформления приложения. Щелкнем в поле Images элемента ImageList (рис. 2.29).

Рис. 2.29. Cвойство Images элемента ImageList

 

Добавим файлы иконок, последовательно нажимая кнопку Add и выбирая директорию — Code\Glava2\NotepadCSharp\Icon. Мы создадим кнопки панели инструментов, дублирующие действия пунктов меню New, Open, Save, Cut, Copy и Paste, поэтому вы можете выбрать подходящие изображения на своем компьютере 1) . В любом случае, подобрав иконки, завершаем работу с редакторомImageCollectionEditor, нажимая OK. Займемся теперь элементом ToolBar. Свойству Name установим значение toolBarMain, а в поле свойства ImageList выберем imageList1. Запустим редактор ToolBarButton Collection Editor для создания кнопок, щелкнув кнопку (…) в поле свойства Buttons (рис. 2.30).

Рис. 2.30. Редактор ToolBarButton Collection Editor

 

Для добавления кнопок в этом редакторе тоже следует нажимать клавишу Add. Создадим шесть кнопок, установив для них следующие свойства:

Name Image Index ToolTipText
tbNew Create New
tbOpen Open
tbSave Save
tbCut Cut
tbCopy Copy
tbPaste Paste

Свойство Name устанавливает название кнопки для обращения к ней в коде. Свойство Image Index определяет изображение на кнопке, а в поле ToolTipText вводим текст всплывающей подсказки, которая будет появляться при наведении курсора на кнопку. Завершив работу с редактором кнопок в режиме дизайна формы frmmain, дважды щелкаем на ToolBar и переходим в код. Для создания функциональности кнопок связываем событие Click заданной кнопки c соответствующим обработчиком пунктов меню:

private void toolBarMain_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e){ //New if (e.Button.Equals(tbNew)) { mnuNew_Click(this, new EventArgs()); } //Open if (e.Button.Equals(tbOpen)) { mnuOpen_Click(this, new EventArgs()); } //Save if (e.Button.Equals(tbSave)) { mnuSave_Click(this, new EventArgs()); } //Cut if (e.Button.Equals(tbCut)) { mnuCut_Click(this, new EventArgs()); } //Copy if (e.Button.Equals(tbCopy)) { mnuCopy_Click(this, new EventArgs()); } //Paste if (e.Button.Equals(tbPaste)) { mnuPaste_Click(this, new EventArgs()); }}

Запускаем приложение. Кнопки панели инструментов дублируют пункты меню, а при наведении на них появляются подсказки (рис. 2.31).

Рис. 2.31. Панель инструментов Toolbar

 

Задание

В созданном приложении дополнительно реализовать следующие функции:

В компонент ToolBar вставить выбор размера шрифта для выделенного текста и кнопку закрытия всех дочерних окон.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-12-18 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: