- •08080101 (Дисциплина опд. Ф.04 – лекции: 18 часов),
- •1. Понятие о визуальном программировании (2 часа)
- •2. Структура программы на Visual Basic .Net (1 час)
- •Imports имя_класса
- •3. Работа с переменными в Visual Basic .Net (2 часа)
- •4. Работа с формами в Visual Studio .Net (2 часа)
- •5. Элементы управления в формах (2 часа)
- •6. Дополнительные элементы управления (2 часа)
- •7. Работа с меню в Visual Studio .Net (2 час)
- •8. Создание многооконных приложений в Visual Basic .Net (1 час)
- •9. Работа с файлами данных в Visual Studio .Net (2 часа)
- •10. Печать в Visual Basic .Net (2 часа)
- •Глоссарий
7. Работа с меню в Visual Studio .Net (2 час)
Меню является важнейшим элементом Windows- программ. В Visual Studio .Net меню является объектом и присоединяется к форме. В одной форме может быть несколько меню, причем как основных (в верхней части формы), так и контекстных.
Для создания меню используют элемент управления MenuStrip. Элементы меню являются объектами типа MenuItem, входящими в состав MainMenu.
Процесс создания меню состоит из следующих шагов:
перенести объект MenuStrip на форму;
ввести заголовки нужных пунктов меню, переводя курсор в нужном направлении.
Названия пунктов меню, как объектов, можно менять в окне свойств. Каждый пункт меню имеет событие Click, которое можно запрограммировать.
Основные свойства объекта MenuItem:
Checked – превращает пункт меню в переключатель. Возле команды появляется флажок, который показывает, включен или выключен данный пункт меню;
DefaultItem – логическое свойство, указывающее, что данное меню является используемым по умолчанию;
Enavled – логическое свойство, определяющее, доступен ли в данный момент выбранный пункт меню пользователю или нет;
IsParent – логическое свойство, определяющее, имеет ли данный пункт меню подменю или нет;
Visible – логическое свойство, определяющее, виден ли в данный момент этот пункт меню или нет. Оно используется для временного скрытия пунктов меню;
Text – определяет текст пункта меню. С помощью этого свойства можно изменять надписи на пунктах меню в ходе выполнения приложения.
Каждый пункт меню имеет имя, поэтому работа с пунктами меню в ходе выполнения программы выполняется аналогично обычным объектам.
Привязка меню к форме осуществляется с помощью значения свойства MainMenuStrip формы.
Контекстное меню создается с помощью элемента управления ContextMenuStrip. Такие меню вызываются щелчком правой кнопки мыши и могут быть размещены в любом месте формы. При отладке контекстное меню появляется в форме, где его можно редактировать, также, как и основное меню. В ходе выполнения программы контекстное меню не появляется.
Для связывания контекстного меню с элементом управления на форме необходимо присвоить значению свойства ContextMenuStrip этого элемента имя соответствующего контекстного меню.
Разработка контекстного меню осуществляется также, как и основного. Отличие состоит в том, что первый элемент контекстного меню является его именем и не выводится при выполнении программы. Элементы контекстного меню имеют те же свойства, что и основного, и точно также программируются.
Разным элементам управления в форме может быть сопоставлено одно и то же контекстное меню.
8. Создание многооконных приложений в Visual Basic .Net (1 час)
Все приложения Windows делятся на два вида – однооконные (SDI – Single Document Interface) и многооконные (MDI – Multi 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 здесь также относится к родительской форме.