TatsuSheva Ответов: 1

[C#] откройте форму с помощью метода MDI


Привет,
Я создал три формы, и в каждой форме есть кнопка. Мне удалось открыть вторую форму с помощью MDI, поставив этот код:
Form2 Utilisateur = new Form2();
                Utilisateur.MdiParent =this;
                Utilisateur.Show();

Но теперь мне нужно открыть третью форму, находясь на второй форме, используя MDI, как я мог это сделать ?
Спасибо.

Что я уже пробовал:

Я сделал первый шаг. При нажатии на кнопку первой формы он открывает вторую форму, но теперь я хочу открыть третью форму b, нажав на кнопку второй формы.

1 Ответов

Рейтинг:
1

OriginalGriff

Лучше всего этого не делать.
Вместо этого создайте событие в вашем Form2, которое обрабатывает его родитель.
Ваша кнопка вызывает событие, родитель обрабатывает его и создает новый экземпляр точно так же, как он создал Form2.
Это должно помочь: Передача информации между двумя формами, Часть 2: Ребенок-Родитель[^]


TatsuSheva

Нет другого способа ?

OriginalGriff

Ничего такого, что имело бы смысл в среде OOPs - все дело в разделении проблем.
Это действительно не сложно - создание события - это всего лишь несколько строк кода, а сигнализация-всего одна строка! И ссылка включает в себя код, чтобы сделать все это.

TatsuSheva

В вашем случае это была передача данных, но в моем - открыть форму с помощью метода MDI, как вы думаете, это сработает ?

OriginalGriff

Конечно, будет!
В вашем случае информация, которую вы передаете, - это "пользователь запросил форму 3", которая просто нуждается в событии - в этом случае вам не нужно свойство.

Подумайте об этом: это то же самое, что текстовое поле, сигнализирующее о событии TextChanged - ему все равно, что ваша форма делает с этим, он просто указывает, что это произошло.

TatsuSheva

Ладно, я буду стараться изо всех сил.

OriginalGriff

Вперед!
Привыкайте к созданию и обработке событий - они действительно просты,но они заставляют работать весь .NET.
Я использую их так часто, что написал это:

http://www.codeproject.com/Articles/400287/A-simple-code-snippet-to-add-an-event

Это означает, что я добавляю событие в класс, набрав "evh" и дважды нажав TAB!

TatsuSheva

Я нашел решение, спасибо.