Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 155

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 149 150 151 152 153 154 < 155 > 156 157 158 159 160 161 .. 320 >> Следующая

ShowDialogO Отображает форму как диалоговое окно (подробнее о диалоговых окнах
рассказывается дальше в этой главе)
Создаем меню 375
// При .¦.¦.¦,..,.¦¦.c, разнес формы ее нужно обновить! Можно
// вместо вызова Invalidate просто установить поддержку стиля ResizeRedraw
InvalidateO:
Создаем меню
Теперь, когда мы познакомились со строением форм Windows в .NET, следующая наша задача — научиться создавать на формах систему меню, при помощи которой пользователь сможет выполнять различные операции. В пространстве имен Sy.v-хєгїї . Wl ndows. Forms предусмотрено большое количество типов для организации ниспадающих главных меню (расположенных в верхней части формы) и контекстных меню, открывающихся по щелчку правой кнопки мыши. Мы начнем с создания стандартного ниспадающего мої і ю, которое позволит пользователю выйти из приложения, выбрав пункт FiLe (Файл) > Exit (Выход). То, чтодолжно получиться, представлено на 8.21.
Jiimple Menu ¦ г|п|*1
[не
И ЕЛ CmL+K

Рис. 8.21. Простое меню на форме
Первый класс, с которым мы познакомимся, — это класс System.Windows. Forms. Menu. Этот класс является базовым для таких часто используемых производных классов, как MainMenu. Menu I ten и ContextHenu, которые мы рассмотрим чуть позже. System. Windows. Forms. Menu - это абстрактный класс, и мы не сможем создать объект этого класса напрямую. В приложении используются только объекты производных типов. Класс Menu обеспечивает важнейшие функции любых видов меню —
Il Выводим на форму текстовую строку. Для типов, используемых в этом методе,
// нам потребуется ссылка на System.Drawing
private void MainForra pa int(object sender, PaintEventArgs e)
{ Graphics g * e.Graphics:
g. Drawstring ("Windows Forms is for building GUIs!", new Font ("Times New Roman", 20). new Sol і dBrush (Col or. Bl ack),
this.DisplayRectangle) : Il Выводим В клиентской прямоугольной // области
)
і I
Таким образом, форма с указанными нами размерами и цветом фона начнет свое существование точно по центру экрана. При изменении ее размеров (то есть при наступлении события Resizei)) форма будет перерисована (будет вызван метод Invalidate*)). Кроме того, на форме будет выведена текстовая надпись.
.Код приложения SimpleFormApp можно найти в подкаталоге Chapter 8.
1
376 Глава 8 • Окна становятся лучше: введение в Windows,Forms
возможность доступа к элементам меню, слияние межо в приложениях MDI и т. п. Иерархия основных классов Wi ndow.-;. Foitc, преднг значенных для создания меню в приложениях, представлена на рис. 8.22.
Menu
MenuSMenuItemCollection
V
ContextMenu 1_
Рис. 8.22. Иерархия классов Windows,Foi ms для работы с меню
Обратите внимание, что класс Menu определяет вложенный класс MenuItemCol 1 ection. Этот вложенный класс наследуется всеми тремя производными классами; и НаіпИе-nu, и Menultem, и ContextMenu. Как, наверное, вы уже догадались по названию, Me-nuItenCol 1 act.i on предназначен для хранения информации об элементах меню, к которым можно получить доступ через свойство Menu. Menultems (о нем будет сказано чуть позже). Главные члены базового класса Menu представлены в табл. 8.17.
Таблица 8.17. Члены класса Menu Член Назначение
Handle Это свойство обеспечивает к значению HMENU, идентифицирующему
данное меню
IsParent Это свойство определяет, содержит ли данное neve какие-либо подменю
или оно является конечным
Это свойство возвращает объект Menultem, который содержит список дочерних окон приложения MDI
Это свойство возвращает объект вложенного класса Menu.MenuItemCollection, который представляет подменю, являющееся вложенным для текущего меню
GetMainMenuO Возвращает объект MainMenu, в котором содержится текущее меню
Объединяет элементы меню в единое меню согласно данным, содержащимся в свойствах mergeType и mergeOrder. Используется для слияния меню контейнера в приложении MDI с меню дочернего окна
CloneMenuO Создает меню, являющееся полной копией другого меню (создается полная локальная копия, а не ссылка на существующее меню)
Ж л
MainMenu Menultem _I _I
Вложенный класс Menu$MenuItemCollection
Возможно, самое важное свойство класса Menu - это свойство Menultems, возвращающее объект вложенного класса MenuSMenuItetCollection, Этот вложенный класс представляет набор всех подменю для текущего меню — то есть для объекта класса, производного от Menu.
Создание системы меню в приложении 377
Например, если мы создали объект класса Mai nMenu, представляющий меню ве рх-ssem уровня іе (Файл), то в коллекцию Menu] ie\f.n ic-cl.ion вы можете поместить объекты класса Menultems, такие как Open (Открыть), Save (Сохранить), Close (Закрыть), Save As (Сохранить как) и т. п. Конечно, в MenuItemCol lection предусмотрены члены, которые позволяют без каких-либо проблем добавлять и удалять объекты класса Menultem, получать о них информацию, а также обращаться к конкретному элементуданной коллекции. Некоторые наиболее важные члены MenuItemCol 1 ect ion представлены в табл. 818,
Таблица 8.18. Члены вложенного типа Menu$MenuItemCollection
Предыдущая << 1 .. 149 150 151 152 153 154 < 155 > 156 157 158 159 160 161 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100