Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электронный учебник по дисциплине ВМиП для спец...doc
Скачиваний:
18
Добавлен:
09.11.2019
Размер:
299.52 Кб
Скачать

7. Работа с меню в Visual Studio .Net (2 час)

Меню является важнейшим элементом Windows- программ. В Visual Studio .Net меню является объектом и присоединяется к форме. В одной форме может быть несколько меню, причем как основных (в верхней части формы), так и контекстных.

Для создания меню используют элемент управления MenuStrip. Элементы меню являются объектами типа MenuItem, входящими в состав MainMenu.

Процесс создания меню состоит из следующих шагов:

  1. перенести объект MenuStrip на форму;

  2. ввести заголовки нужных пунктов меню, переводя курсор в нужном направлении.

Названия пунктов меню, как объектов, можно менять в окне свойств. Каждый пункт меню имеет событие Click, которое можно запрограммировать.

Основные свойства объекта MenuItem:

  • Checkedпревращает пункт меню в переключатель. Возле команды появляется флажок, который показывает, включен или выключен данный пункт меню;

  • DefaultItem логическое свойство, указывающее, что данное меню является используемым по умолчанию;

  • Enavled логическое свойство, определяющее, доступен ли в данный момент выбранный пункт меню пользователю или нет;

  • IsParent логическое свойство, определяющее, имеет ли данный пункт меню подменю или нет;

  • Visible логическое свойство, определяющее, виден ли в данный момент этот пункт меню или нет. Оно используется для временного скрытия пунктов меню;

  • Text определяет текст пункта меню. С помощью этого свойства можно изменять надписи на пунктах меню в ходе выполнения приложения.

Каждый пункт меню имеет имя, поэтому работа с пунктами меню в ходе выполнения программы выполняется аналогично обычным объектам.

Привязка меню к форме осуществляется с помощью значения свойства MainMenuStrip формы.

Контекстное меню создается с помощью элемента управления ContextMenuStrip. Такие меню вызываются щелчком правой кнопки мыши и могут быть размещены в любом месте формы. При отладке контекстное меню появляется в форме, где его можно редактировать, также, как и основное меню. В ходе выполнения программы контекстное меню не появляется.

Для связывания контекстного меню с элементом управления на форме необходимо присвоить значению свойства ContextMenuStrip этого элемента имя соответствующего контекстного меню.

Разработка контекстного меню осуществляется также, как и основного. Отличие состоит в том, что первый элемент контекстного меню является его именем и не выводится при выполнении программы. Элементы контекстного меню имеют те же свойства, что и основного, и точно также программируются.

Разным элементам управления в форме может быть сопоставлено одно и то же контекстное меню.

8. Создание многооконных приложений в Visual Basic .Net (1 час)

Все приложения Windows делятся на два вида – однооконные (SDISingle Document Interface) и многооконные (MDIMulti Document Interface). SDI-приложения имеют одну или несколько форм, которые выводятся на экран независимо друг от друга. Примерами SDI-приложений являются такие программы, как калькулятор и Paint. MDI-приложения имеют главную форму (называемую родительской, или Parent Form), внутри которой отображаются подчиненные формы (называемые дочерними, или Child Forms). Каждый документ открывается в своем дочернем окне. Примерами многооконных приложений являются приложения Word и Excel. Сама система Visual Studio .Net также является многооконным приложением. В MDI-приложениях при закрытии главной формы автоматически закрываются все ее дочерние формы. Диалоговые окна не влияют на работу ни SDI-приложений, ни MDI-приложений, они в любом случае отображаются поверх всех форм.

Создание SDI-приложения не требует дополнительных усилий. По-умолчанию любое приложение, создаваемое с помощью среды разработки Visual Studio .Net, является SDI-приложением. Для создания же MDI-приложения требуется установить определенные свойства некоторым формам и написать соответствующий код. При этом, если все дочерние формы однотипны, то в проект достаточно добавить только одну дочернюю форму, т.к. на экране в процессе выполнения программы отображается наследный экземпляр дочерней формы. Поэтому даже при наличии одной дочерней формы внутри главной формы можно отобразить сколько угодно ее экземпляров. Если же дочерние формы различны, то в проект можно добавить только по одной дочерней форме каждого вида.

Для создания MDI-приложения необходимо в той форме, которая является главной, установить значение свойства IsMDIContainer, равное True (по умолчанию устанавливается значение False). У дочерних форм никаких специальных свойств устанавливать не требуется.

Для загрузки экземпляра дочерней формы необходимо написать следующий код (Form2 – имя дочерней формы):

Dim newmdichild As New Form2

newmdichild.MdiParent = Me

newmdichild.Show()

После загрузки дочерней формы ее можно обрабатывать как обычную. В частности, она имеет собственное событие Load, где можно, например, изменять ее заголовок:

Me.Text = "Вторая дочернаяя форма"

и записать другие действия. Для скрытия дочерней формы с экрана используются методы Hide и Close, также, как и для обычной формы, например:

Me.Hide()

или

Me.Close()

Ключевое слово Me здесь относится к дочерней форме, т.к. в данный момент эта форма является текущей. Дочерние формы можно закрывать и обычным образом (через кнопку закрытия окна Windows).

Если же нужно закрыть дочернюю форму из главной (например, из соответствующего пункта меню), то значение методов Hide и Close меняется. Например, для закрытия текущей дочерней формы метод Close применяется к объекту ActiveMDIChild:

Me.ActiveMdiChild.Close()

Ключевое слово Me здесь относится к родительской форме, т.к. в данный момент она является текущей. Для закрытия всех дочерних форм внутри родительской можно использовать код:

Dim f As New Form

For Each f In Me.MdiChildren

f.Close()

Next

Ключевое слово Me здесь также относится к родительской форме.

Дочерние окна внутри родительской формы можно упорядочивать по вертикали, по горизонтали, каскадом или по значкам. Такая возможность имеется во многих программах (Word, Excel и др.). Для реализации этой возможности в Visual Basic .Net используют метод LayoutMDI родительской формы, например:

Me.LayoutMdi(MdiLayout.TileVertical)

Me.LayoutMdi(MdiLayout.TileHorizontal)

Me.LayoutMdi(MdiLayout.Cascade)

Me.LayoutMdi(MdiLayout.ArrangeIcons)

Ключевое слово Me здесь также относится к родительской форме.