Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


This.LayoutMdi(MdiLayout.TileHorizontal);




}

 

private void мозаикаВертикальноToolStripMenuItem_Click(object sender, EventArgs e)

{ // вертикальная мозаика

This.LayoutMdi(MdiLayout.TileVertical);

}

 

private void закрытьТекущееToolStripMenuItem_Click(object sender, EventArgs e)

{ // закрытие текущего (активного) окна с проверкой, существует ли такое

if (this.ActiveMdiChild!= null) ActiveMdiChild.Close();

}

 

private void закрытьВсеToolStripMenuItem_Click(object sender, EventArgs e)

{ // два варианта закрытия всех подчиненных окон

/* for (int i = MdiChildren.Length - 1; i >= 0; i--)

MdiChildren[i].Close();*/

while (this.ActiveMdiChild!= null) ActiveMdiChild.Close();

}

 

ActiveMdiChild – системная переменная, указатель на активное в данный момент окно.

MdiChildren – массив указателей на подчиненные окна.

 

Может возникнуть необходимость создания подчиненного окна в единственном экземпляре. Для этого необходимо после его создания заблокировать пункт меню его открытия и разблокировать его при закрытии окна. Для этого используем пункт меню Окна – Единственная форма. Этому пункту меню дадим имя FormA и он должен иметь атрибут доступа public. Создаем таким образом почти пустую форму Form4. в число ее переменных включим сссылку на главное окно: public Form1 f1;

Создание и открытие этого окна:

private void FormA_Click(object sender, EventArgs e)

{

Form4 f4;

f4 = new Form4();

f4.MdiParent = this;

FormA.Enabled = false; //закроем пункт меню

f4.f1 = this; // передаем адрес главного окна в Form4

F4.Show();

}

 

При закрытии пункт меню Единственная форма (его имя FormA) должен быть снова освобожден. Тонкость в следующем: форму можно закрыть несколькими способами: нажатием на командную кнопку, нажатием на кнопку ´, через системное меню и т.д. В любом случае пункт меню должен быть разблокирован. Для этого используем событие, связанное с закрываемым окном:

FormClosed (происходит после закрытия) или FormClosing (происходит до закрытия). В нашем случае можно использовать любое из них. Найдем нужное событие в списке, делаем на его имени двойной щелчок и пишем реализацию:

private void Form4_FormClosed(object sender, FormClosedEventArgs e)

{

f1.FormA.Enabled = true;

}

 

В MDI-приложениях возможно изменение меню в главном окне при открытии того или иного подчиненного окна. Для этого создаем меню в подчиненном окне. При открытии этого окна оно соединяется с меню главного окна.

 

 

Контрольные вопросы

1. Какие диалоговые средства для управления работой программой Вы знаете?

2. Какие способы представления массивов на формах Вы знаете? Какие их преимущества и недостатки?

3. Проанализируйте отличия MDI- и SDI-приложений.

 

Объектно-ориентированное программирование в Microsoft Visual Studio 2005

 

В предыдущих главах мы рассмотрели, как писать программы на C# (по процедурной и по объектно-ориентированной методике), а также создание интерфейса средствами Microsoft Visual Studio 2005. Рассмотрим в этой главе, как объединить в одно целое все изложенное выше: как построить программы для решения прикладных задач и как построить интерфейс для них. Имеются следующие возможности, которые мы по очереди рассмотрим:

1. Дополнить классы форм собственными данными и функциями для решения прикладных задач. Другими словами, объединить в классах интерфейс и логику прикладной задачи.

2. Создать отдельные классы для решения прикладных задач, предусмотрев в их методах (в том числе и в конструкторах) формальные параметры и возвращаемые значения для взаимодействия с интерфейсом. Чтение (запись) данных из интерфейса (в интерфейс) и их передача в методы обеспечивается средствами Visual Studio.

3. Передать в классы прикладных задач указатели на формы (или на компоненты на форме); чтение (запись) данных из форм осуществляется методами классов.

4. В методах классов прикладной задачи предусмотреть открытие форм для ввода/вывода.

 





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 489 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

2457 - | 2338 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.