Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 174

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 168 169 170 171 172 173 < 174 > 175 176 177 178 179 180 .. 404 >> Следующая


(ее можно назвать Formi.cs).

4. Назовите, вновь вставленную форму frmEditor. Измените имя файла,

в котором она находится, на frmEditor.cs. Присвойте свойству Text значение Editor. -

Эти шаги очень похожи на шаги, предпринимавшиеся прн создании приложения MDI Basic; отличие заключается только лишь в использовании уже существующей формы вместо создания новой. Однако самое интересное следует далее.

5. Перейдите к коду формы, в которой содержится редактор.

Измените имя пространства имен иа simpleTextEditor н замените все экземпляры Porml на frmEditor.

6. Найдите метод Main о формы н удалите его.

7. Измените конструктор формы, в которой содержится редактор, следующим образом:

public frmEdicortSimpleTextEditor.frmContainer parent)

(

InitializeComponent();

П Привязка к родителю thia.MdiParent * parent;

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

{

InitializeComponent();

SimpleTextEditor. frmEditor newForm “ new frmEditor (this); newForm.Show[);
368 Глава 14

При запуске данного приложения получается что-то похожее на изображенное на рисунке слева.

Произошло нечто необъяснимое. Мы не создавали никаких меню для контейнера, н тем не менее меню Files находится справа вверху. Почему так получилось? Ответ заключается в том, что было создано меню для формы, содержащей редактор, а так как эта форма является в настоящий момент дочерней формой контейнера, то пункты основного меню оказались объединенными. Поскольку в контейнере пока отсутствуют свои собственные меню, то в этом меню всего один пункт.

Меню, содержащиеся в дочерних окнах, являются специфическими для данного окна. В отличие от них меню Files должно быть общим для всех окон — оно не должно содержаться в дочернем окне. Причина этого условия станет очевидной, если вы закроете окно редактора,— меню Files исчезнет! Чтобы изменить такое поведение, следует предпринять несколько дополнительных шагов:

9. Удалите меню с именем MainMenuFiies нз формы, содержащей редактор, щелкнув иа нем правой кнопкой мыши и выбрав Delete.

В появившемся окне с сообщением нажмите Yes, чтобы его закрыть.

10. Перейдите к коду и удалите следующие обработчики событий для данного меню:

? menuItemFilee_Popup

? menuItemSave_Clicli

? menultemNew_Click

? menuItemOpen_ClicJi ¦

? menuItemExit^Click

11. Удалите из конструктора строку, в которой происходит подписка на событие menuItemFiles_Popup,

Более подходящим для формы, содержащей редактор,

будет меню Edit. Для его создания выполните следующие шаги:

12. Добавьте новое меню в форму, содержащую редактор.

Назовите этот управляющий элемент MainMenuEdit.

13. Добавьте в него семь пунктов н присвойте значения свонстьам:

Имя Текст Порядок объединения
menultemEdi t iEdit 0 .
menul temUndo bUndo He задан
menuItemRedo bRedo He задан
menuItemSeparatorEJditQ - He задан
menuItemCut Cu&t He задан
menuItemCopy ЬСору He задан
menultemPasta SPaste He задан
Дополнительные возможности Windows Form

369

14. Присвойте свойству Menu формы, содержащей редактор, значение MainMenuEdic. Это меню будет объединено с меню основного окна.

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

15. Добавьте К форме frmContainer меню MainMenu, .

Назовите его MainMenuContainer.

16. Добавьте в это меню указанные ниже пункты. Обратите внимание на то, что пункт MenuitemWindow должен быть пунктом меню самого верхнего уровня — то есть он должен располагаться справа от меню Files:

Имя Текст Свойство MdiList Самый верхний уровень Порядок объединения
menultemPi1ее sFiles False Да 0
menul teniNew &New False Нет Не задан
menultemOpen fcOpen False Нет Не задан
menultemCloae fcClose False Нет Не задан
menuItemSepFilesO - False Нет Не задан
menul texnSave &Save False Нет Не задан
menultemSaveAl1 Save &A11 False Нет Не задан
menultemSepFilesl - False Нет Не задан
menultemExit Eixit False Нет не задан
menultemWindow SWindow False Да 1
menultemTile bTile False Нет Не задан
menultemCascade itCascade False Нет Не задан
menultemSepWindowO - False Нет Не задан
roenultemwindowsOpen Open Windows True Нет Не задан

'/$94-4* I r-it t dil и,

bit

Если запустить приложение, то можно увидеть, что меню Edit помещено между меню Files и Window. Причина произошедшего заключается в том, что мы задали 1 в качестве значения свойства MergeOrder управляющего элемента MenuitemWindow, а в качестве же значения свойства MergeOrder меию Edit — 0. Поскольку свойство MergeType имеет значение Add, то меню Edit добавляется справа от всех пунктов меню самого верхнего уровня, у которых значение свойства MergeOrder меньше значения свойства MergeOrder меню Edit или равно ему (см. ряс. слева).
370

Глава 14

Еще один момент, достойный внимания, заключается в том, что пункт Open меню Windows содержит подпункт с окошком выбора. Текст этого подпункта совпадает с текстом формы, содержащей редактор. В названном меню будут перечислены все открытые окна — для это не потребуется напнсать нн единой строки кода. Такое положение является результатом присвоения свойству MdiList ПуНКТЭ меню menulteraWindowsOpen значения true (см. рис. справа).
Предыдущая << 1 .. 168 169 170 171 172 173 < 174 > 175 176 177 178 179 180 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.