Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Связь главного MDI окна с дочерними


Автор: MedvedDima 16.12.2009, 23:58
Здравствуйте! Подскажите пожалуйста, как устроить связь главного MDI-окна с его дочерними окнами?

Хочу реализовать функцию открыть (соответсвенно сохранить и закрыть) - открывает дочернее окно и заполняет его элементы (ComboBox, ListBox, CheckedListBox) значениями получеными из сериализуемого файла. Можно как-то в главном окне получить элементы управления дочернего окна?

Автор: diadiavova 17.12.2009, 00:37
Цитата(MedvedDima @  16.12.2009,  23:58 Найти цитируемый пост)
Можно как-то в главном окне получить элементы управления дочернего окна?

Коллекция дочерних окон в главном окне находится в свойстве MdiChildren. Находишь в ней нужно окно, приводишь его к нужному типу(потому что там оно имеет тип Form, а у тебя это будет твой собственный тип  Form1 например или ещё как-нибудь) и элементы будут доступны по общим правилам видимости(например если их объявить с модификатором internal).

Автор: MedvedDima 17.12.2009, 08:58
Я сделал немного по другому:
Создал объект дочернего окна и присвоил ему значение this.ActiveMdiChild
Код

DBDocument activeDBD = (DBDocument)this.ActiveMdiChild;


Потом в файле *.cs дочернего окна указал для нужных мне элементов управления маркер доступа public, после чего они стали доступны для работы с ними.
Код

activeDBD.comboBox1.SelectedItem = serialObj.database;
activeDBD.from.SelectedItem = serialObj.from;
activeDBD.Text = openFileDialog1.FileName;

Автор: diadiavova 17.12.2009, 09:47
Цитата(MedvedDima @  17.12.2009,  08:58 Найти цитируемый пост)
Создал объект дочернего окна и присвоил ему значение this.ActiveMdiChild

Можно и так
Цитата(MedvedDima @  17.12.2009,  08:58 Найти цитируемый пост)
Потом в файле *.cs дочернего окна указал для нужных мне элементов управления маркер доступа public

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

Автор: MedvedDima 17.12.2009, 09:51
спасибо за совет. очень помог)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)