Программирование >>  Программирование с использованием ajax 

1 ... 160 161 162 [ 163 ] 164 165 166 ... 396


Т Dociini nt WoiJPoil lile Edit View Inseit Fgimat Help

Anai

-Ша,

HVUJ Ш Ш Ш :E

1

3

1. IB

ForH *),preeeFl

Pwc. 16.10. приложение WordPad

Однако в каждый конкретный момент времени эти приложения позволяют работать только с одним открытым документом. Поэтому, если пользователю требуется открыть второй документ, ему придется открыть новый экземпляр SDI-приложения, который никак не будет связан с первым экземпляром. Любые изменения в конфи-17рации одного экземпляра не переносятся в другой экземпляр. Например, в одном экземпляре Paint для рисования можно установить красный цвет, а при открытии второго экземпляра этого приложения цветом рисования будет заданный по умолчанию - черный.

Многодокументные интерфейсы во многом подобны SDI-приложениям, за исключением того, что в любой данный момент времени они могут содержать более одного открытого документа в различных окнах. Верным признаком MDI-приложения может служить наличие меню Window (Окно) непосредственно перед меню Help (Справка) в строке меню. Примером MDI-приложения является Adobe Reader, показанный на рис. 16.11.

Ilk Edit View DocuMcm To*l WtnAcw Ik


JcifK Cnrc hep ,7i=diirgA(Jcb?PDF

t>i Cnre hep - Ednrq AdcbJ PjF

Puc. 16.11. приложение Adobe Reader



Практическое занятие СоЗДЭНИе MDI-приЛОЖеНИЯ

Создание MDI-приложения мы начнем с того же, что и предпринимается для любого другого приложения - с создания приложения Windows Forms в среде Visual Studio.

1. Создайте новое Windows-приложение MDIBasic в каталоге С: \BegVCSharp\ Chapterie.

2. Чтобы изменить тип главного окна приложения с формы на контейнер MDI, установите значение свойства IsMdiContainer формы равным true. Цвет фона формы изменится, указывая, что теперь она представляет собой всего лишь фон, на который не следует помещать видимые элементы управления (хотя эти и возможно и даже целесообразно в некоторых ситуациях).

Выберите форму и установите ее свойства, как показано в табл. 16.12. Таблица 16.12. Значения свойств формы

Свойство

Значение

Name

frmContainer

IsMdiContainer

True

Text

MDI Basic

WindowState

Maximized

В этой главе основное внимание уделено задачам, связанным с созданием MDI-приложения. Выбор такого подхода обусловлен тем, что любое SDI-приложение по существу является поднабором MDI-приложения. Поэтому, если вы сможете создавать многодокументные интерфейсы, создание однодокументного интерфейса не составит сложности. Фактически в главе 17 мы создадим простое SDI-приложение, предназначенное для демонстрации применения обычно используемых диалоговых Windows.

Построение MDI-приложений

Что же требуется для создания многодокументного интерфейса? Во-первых, задача, которую должны быть в состоянии выполнять пользователи, должна быть такой, которая может требовать работы с несколькими открытыми документами. Показательный пример такого приложения - текстовый редактор или программа просмотра текстовых файлов. Во-вторых, необходимо предоставить панели инструментов для выполнения наиболее часто выполняемых в приложении задач, таких как установка стиля шрифта, загрузка и сохранение документов. В-третьих, нужно предусмотреть меню, включающее в себя пункт Window (Окно), которое позволит пользователям позиционировать открытые окна относительно друг друга (в виде плитки или каскадным образом) и будет представлять список всех открытых окон. Еще одна характерная особенность MDI-приложений состоит в том, что когда окно открыто и это окно содержит меню, это меню должно быть интегрировано в главное меню приложения.

MDI-приложение состоит, по меньшей мере, из двух различных окон. Первое окно, которое мы создадим, называется контейнером MDI. Окно, которое может отображаться внутри этого контейнера, называется дочерним MDI. В этой главе для контейнера MDI применяется термин контейнер MDI или главное окно , а для дочернего MDI - дочерний MDI или дочернее окно .

В следующем практическом занятии рассмотрен небольшой пример выполнения всех этих действий. Затем мы перейдем к выполнению более сложных задач.



3. Чтобы создать дочернее окно, добавьте в проект новую форму, выбрав Windows Form (Форма Windows) из открывшегося диалогового окна Windows Form посредством выбора команды меню ProjectAdd New Item (Проект==>Добавить новый элемент). Дайте форме имя f rmChild.

4. Новая форма становится дочерним окном при установке ссылки на главное окно в качестве свойства MdiParent дочернего окна. Это свойство нельзя установить посредством панели Properties. Для этого нужно использовать код. Измените конструктор новой формы следующим образом:

public frmChild(MdiBasic.frmContainer parent) {

InitializeComponent();

Установка контейнера в качестве родительского элемента управления формы, this.MdiParent = parent;

5. Теперь, прежде чем MDI-приложение сможет отображаться в наиболее общем режиме, осталось выполнить всего два действия. Необходимо указать контейнеру MDI, какие окна следует отображать, а затем обеспечить их отображение. Просто создайте новый экземпляр формы, которую нужно отобразить, а затем вызовите для нее метод Show (). Конструктор формы, которую нужно отображать в качестве дочерней, должен связываться с родительским контейнером. Этого можно достичь, устанавливая экземпляр контейнера MDI в качестве свойства MdiParent этого конструктора. Измените конструктор родительской формы MDI следующим образом:

public frmContainer() {

InitializeComponent();

Создание нового экземпляра дочерней формы. MdiBasic.frmChild child = new MdiBasic.frmChild(this);

Отображение формы, child.Show О;

Описание полученных результатов

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

public frmChild(MdiBasic.frmContainer parent) {

InitializeComponent();

Установка контейнера в качестве родительского элемента управления формы, this.MdiParent = parent;

Чтобы связать дочернюю форму с контейнером MDI, необходимо обеспечить, чтобы дочерняя форма зарегистрировалась с помощью контейнера. Это достигается посредством установки свойства MdiParent формы, как показано в предыдущем коде. Обратите внимание, что используемый конструктор включает в себя параметр parent.

Поскольку С# не предоставляет определенные по умолчанию конструкторы для класса, который определяет собственный конструктор, приведенный код не позволяет создать экземпляр формы, не связанной с контейнером MDI.

И, наконец, нам нужно отобразить форму. Это выполняется в конструкторе контейнера MDI:



1 ... 160 161 162 [ 163 ] 164 165 166 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика