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

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



Рис. 16.12. Форма MDIBasic

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

Дуническое

занятие!

Создание текстового редактора MDI

Вначале создадим базовый проект, а затем рассмотрим, что и как происходит.

1. Снова обратитесь к рассмотренному ранее примеру использования строки состояния. Переименуйте форму на f rmEditor и измените ее свойство Text на Editor.

2. Добавьте в проект новую форму f rmContainer. сз и установите для нее свойства, перечисленные в табл. 16.13.

public frmContainerО {

InitializeComponent ();

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

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

Мы создаем новый экземпляр дочернего класса и передаем конструктору объект this, который представляет текущий экземпляр класса контейнера MDI. Затем мы вызываем метод Show () применительно к новому экземпляру дочерней формы. Вот и все! Если нужно отобразить более одного дочернего окна, достаточно для каждого окна повторить две строки, выделенные в приведенном коде.

Теперь запустите код. Интерфейс должен выглядеть подобно показанному на рис. 16.12 (хотя первоначально форма MDI Basic будет развернута во весь экран, на этом рисунке ее размеры были изменены для отображения на одной странице).



Таблица 16.13. Значения свойств формы

Свойство

Значение

Name

frmContainer

IsMdiContainer

True

Text

Simple Text Editor

WindowState

Maximized

8. Откройте файл Program.cs и в методе Main измените строку, содержащую оператор Run, следующим образом:

Application.Run(new frmContainer());

4. Измените конструктор формы f rmEditor, как показано ниже: public frmEditor (frmContainer parent)

InitializeComponent();

this.ToolStripComboBoxFonts.Selectedlndex = 0; Привязка к родительской форме, this. MdiParent = parent;

5. Замените значение свойства MergeAction элемента меню с текстом &File на Replace, а значение этого же свойства элемента с текстом &Format - на MatchOnly.

Измените значение свойства AllowMerge панели инструментов на False.

6. Добавьте элемент управления MenuStrip в форму frmContainer. Добавьте в него единственный элемент с текстом &File.

7. Измените конструктор формы frmContainer следующим образом:

public frmContainerО {

InitializeComponent ();

frmEditor newForm = new frmEditor (this) ; newForm.ShowO ;

Запустите приложение, чтобы увидеть результат, подобный показанному на рис. 16.13.

f F1U Help

V Lditor

ftmM

Рис. 16.13. Простой текстовый редактор MDI



практическое занятие Объединение меню

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

1. Добавьте перечисленные в табл. 16.15 четыре элемента меню в меню File формы f rmContainer. Обратите внимание на скачкообразное изменение значений свойства Mergeindex.

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

Обратите внимание на небольшое чудо . Создается впечатление, что меню File и Help были удалены из формы f rmEditor. Выберите меню File в окне контейнера, и вы убедитесь, что теперь элементы меню диалогового окна f rmEditor можно найти здесь.

Дочерние окна должны содержать те меню, которые специфичны для этих окон. Меню File должно быть общим для всех окон, а не присутствовать только в дочерних окнах. Причина этого становится понятной, если закрыть окно Editor - теперь меню File не содержит ни одного элемента! Меню File должно позволять вставлять элементы, которые специфичны для дочернего окна, когда это окно находится в фокусе, а все остальные элементы должны отображаться главным окном.

Свойства, перечисленные в табл. 16.14, управляют поведением элементов меню.

Таблица 16.14. Свойства, управляющие поведением элементов меню Свойство Описание

MergeAction Определяет поведение элемента при его вставке в другое меню. Возможные значения следующие:

Append - вызывает помещение элемента в последнюю позицию меню Insert - вставляет элемент непосредственно перед элементом, который соответствует критерию вставки. Этим критерием может быть либо текст элемента, либо индекс

MatchOnly - требуется соответствие, но элемент не будет вставлен Remove - удаляет элемент, который соответствует критерию вставки элемента Replace - элемент, соответствующий критерию, заменяется, а следующие за ним элементы размещаются вслед за вставляемым элементом

Mergeindex Представляет позицию элемента меню относительно других элементов меню,

с которым выполняется объединение. Если нужно управлять порядком объединяемых элементов, установите это значение равным 0. В противном случае установите его равным 1. При выполнении слияния это значение проверяется, и, если оно не равно 1, то используется для сопоставления индексов элементов, а не их текста

AllowMerge Установка значения этого свойства равным false означает, что меню не будут

объединяться

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



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

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