Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Несколько форм


Автор: Lamak 19.3.2006, 13:39
Есть Form1, он открывается при запуске программы.
Потом в зависимоти от того что мы в ней вводим,она вызывает Form2 или Form3.
Я их вызываю так
Код


Form frm= new Form2();
frm.Show();


Но я не знаю как реализовать:
чтобы после вызова одной из форм(Form2 или Form3) произошло что-то вроде это-го Form1.Dispose(true),
а пользователь продолжал работать с одной из вызванх форм.

Автор: mr.DUDA 19.3.2006, 20:48
Можно сделать что-то вроде FormManager-а, который управляет открытием-закрытием форм.

Автор: Wanderer2019 19.3.2006, 22:50
вопрос как я понял состоит в отгрузке Form1 после перехода в Form2 . т.е. чтобы целиком открузилась, а не в фоне весела.

Автор: alir 20.3.2006, 12:00
Мне кажется, что проблема в том, что для второй, третей и др. форм существуют
объекты, с которыми можно работать. А для первой формы такого объекта нет, так как мы сами работаем в классе этой формы. Но это не останавливает нас использовать свойства этого класса.

Lamak
Для решения данной проблемы можно сделать так:
Код

private void button1_Click(object sender, EventArgs e)
        {
            Visible = false;
            Form fr2 = new Form();
            fr2.Show();

        }


Автор: Exception 20.3.2006, 14:42
А создать класс, управляющий показом форм, религия не позволяет smile ? Так было бы грамотнее и с точки зрения дизайна приложения.

Автор: Lamak 20.3.2006, 18:04
Wanderer2019
Цитата

вопрос как я понял состоит в отгрузке Form1 после перехода в Form2 . т.е. чтобы целиком открузилась, а не в фоне весела.


Да именно в этом!
Wanderer2019,
Добавлено @ 18:15

Цитата

FormManager-а, который управляет открытием-закрытием форм.



Цитата

класс, управляющий показом форм


Попробую!
Но если можно обьясните пожалуйста как он должен работать(в смысле интерфейс класса).
Цитата


религия не позволяет  ?

Я неверующий и мало того злобный атеист smile !

Автор: VisualProgrammerNET 21.3.2006, 01:11
Что-то не пойму. Если Form1 - содержит метод Main() (вроде как), и если вызвать её Dispose() разве приложение не закроется? smile

Автор: Lamak 21.3.2006, 01:23
VisualProgrammerNET,
в этом то и проблема что закроется , а надо чтобы продолжало работаь с одной из форм( в зависимости какая создалась Form2 или Form3)

Вот как это реализовать?
Добавлено @ 01:30
Хорошо , а если я буду использоать Visible
Цитата

Код


 private void button1_Click(object sender, EventArgs e)
        {
            Visible = false;
            Form fr2 = new Form();
            fr2.Show();

        }
 

,то как мне из Form1 узнать что закрылась fr2 и самой закрыться?


Автор: Wanderer2019 21.3.2006, 10:10
передавай Form1 в конструктор Form2. И на событие Form2.closed
запускай form1.close().

Автор: Exception 21.3.2006, 19:00
Тебе вроде же сказали:
Цитата(mr.DUDA @ 19.3.2006, 21:48 Найти цитируемый пост)
Можно сделать что-то вроде FormManager-а, который управляет открытием-закрытием форм.

Цитата(Exception @ 20.3.2006, 15:42 Найти цитируемый пост)
А создать класс, управляющий показом форм, религия не позволяет smile ? Так было бы грамотнее и с точки зрения дизайна приложения.


Цитата(Lamak @ 20.3.2006, 19:04 Найти цитируемый пост)

Попробую!
Но если можно обьясните пожалуйста как он должен работать(в смысле интерфейс класса).

Как угодно - это твоё дело smile . Просто он будет классом с Main.

Автор: krb 29.11.2008, 02:10
У меня вопрос.
Есть две формы.Первая форма с гридом.Как сделать так,чтобы при добавлении нового значения в грид,на второй форме при этом создавались чекбоксы со значением добавленным в грид. 

Автор: EgoBrain 30.11.2008, 09:04
Цитата(alir @ 20.3.2006,  12:00)
А для первой формы такого объекта нет, так как мы сами работаем в классе этой формы.

А что мешает создать такой объект и работать с ним?

Lamak разместите входную точку программы в другом-неForm классе (не Form1), и запускайте из него Form1 и работайте со всеми формами как угодно (удаляйте/создавайте).

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