|
Программирование >> Программирование с использованием ajax
Таблица 16.15. Элементы меню File формы frmContainer
4. Запустите приложение. Два меню File были объединены, но дочернее диалоговое окно все же сохранило меню File, содержащее один элемент - New. Описание полученных результатов Элементы, для которых значение свойства MergeAction установлено равным MatchOnly, не перемещаются из одного меню в другое, но в случае элемента меню &File совпадение текста двух элементов ведет к объединению их элементов меню. Элементы в меню File объединяются в соответствии со значениями свойств Mergedlndex соответствующих элементов. Значения свойства MergeAction тех из них, которые должны оставаться на месте, устанавливаются равными MatchOnly; значения остальных устанавливаются равными Insert. А что произойдет при щелчке на элементах меню New и Save (Сохранить) в двух различных меню? Вспомните, что меню New в дочернем диалоговом окне просто очищает текстовое поле, в то время как второе меню должно создавать новое диалоговое окно. Поскольку эти два меню должны принадлежать к различным окнам, не удивительно, что они оба работают, как предполагалось. Но как насчет элемента Save? Он перенесен из дочернего диалогового окна в родительское. Откройте несколько диалоговых окон, введите в них какой-либо текст, а затем щелкните на меню Save. Откройте новое диалоговое окно и щелкните на меню Open (Открыть) (помните, что команда Save всегда выполняет сохранение в том же файле). Выберите одно из других окон, щелкните на меню Save, вернитесь к новому диалоговому окну и снова щелкните на меню Open. Вы убедитесь, что элементы меню Save всегда переносятся в диалоговое окно, находящееся в фокусе. При каждом выборе диалогового окна меню снова объединяются. Итак, мы добавили небольшой фрагмент кода в элемент New меню File диалогового окна f rmContainer и удостоверились, что диалоговые окна были созданы. Одно из меню, которое присутствует едва ли не во всех MDI-приложениях - меню Window (Окно). Оно позволяет упорядочивать диалоговые окна и часто отображает ту или иную форму их списка. В следующем практическом занятии мы добавим это меню в свой текстовый редактор. Окончание табл. 16.16 Практическое занятие ОтСЛеживание ОКОН Чтобы расширить прило5кение, добавив в него возможность отображения всех открытых диалоговых окон и их упорядочения, выполните следующие действия. 1. Добавьте в меню формы frmContainer новый элемент меню верхнего уровня &Window. Присвойте ему имя ToolStripMenuItemWindow. 2. Добавьте в новое меню три элемента, перечисленные в табл. 16.17. Таблица 16.17. Элементы меню Window
3. Выберите сам элемент MenuStrip, a не какой-то из отображаемых в нем элементов, и измените свойство MDIWindowListltem на ToolStripMenuItemWindow. 4. Дважды щелкните вначале на элементе Tile, а затем на элементе Cascade, чтобы добавить обработчики событий, и введите следующий код: private void ToolStripMenuItemTile Click(object sender, EventArgs e) LayoutMdi(MdiLayout.TileHorizontal); private void ToolStripMenuItemCascasde Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.Cascade); 5. Измените конструктор диалогового окна frmEditor следующим образом: public frmEditor (frmContainer parent, int counter) InitializeComponent(); this.ToolStripComboBoxFonts.Selectedlndex = 0; Связывание с родительским окном, this.MdiParent = parent; this.Text = Editor + counter.ToString(); 6. Добавьте приватную переменную-член в верхнюю часть кода формы frmContainer и измените конструктор и обработчик событий элемента меню New следующим образом: public partial class frmContainer : Form private int mCounter; public frmContainer0 { InitializeComponent (); mCounter = 1; frmEditor newForm = new frmEditor (this, mCounter) ; newForm.Show();
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |