123yash456 Ответов: 3

Закрытие одной формы в c#.net


У меня есть две формы, то есть форма 1 и форма 2. Теперь у меня есть кнопка на форме 1. При нажатии кнопки я хочу закрыть форму 1 и показать форму 2. Код, который я написал, выглядит следующим образом:
form2 f2=new form2()
f2.show();
this.close()

Но это.close закрывает все приложение.

Может кто-то пожалуйста, помогите мне?
Заранее спасибо.

Toli Cuturicu

Никогда больше не блокируйте вопрос для редактирования. Это крайне грубо. (Э. Ф. Ниджбоеру)

E.F. Nijboer

При улучшении вопроса он блокируется, но вы все равно сможете ответить на него. Это не грубо, это просто для предотвращения столкновений.

3 Ответов

Рейтинг:
1

Amani Ni

Поскольку форма 1 является родительской, а форма 2-дочерней формой ... поэтому невозможно открыть дочернюю форму, когда родительская форма закрыта.

Спам-ссылка удалена.


phil.o

Отличная тема для раскопок !

markovl

Это было только для того, чтобы разместить спам, так что я думаю, что они не слишком заботятся об этом :-)

Рейтинг:
0

TheyCallMeMrJames

Если вы посмотрите в Program.cs, то увидите, что Form1 передается в Application.Run.

Когда вы закрываете Form1, фреймворк предполагает, что вы выходите из программы.

Вы можете скрыть Form1, а затем показать Form2, или вы можете создать фоновый менеджер и использовать его в приложении.Запустите, чтобы контролировать, какая форма используется. Это будет казаться немного хакерским, если вы не найдете/не разработаете приличный шаблон для того, чтобы знать, какие формы открыты и когда вы должны закрываться. Вам нужно будет создать и управлять ApplicationContext, который закрывается, когда у вас больше нет открытых форм. Он также должен отвечать за создание форм.

Овации.


Рейтинг:
0

E.F. Nijboer

Это происходит потому, что вы определили Form1 как свою основную форму. Вы можете скрыть его вместо того, чтобы закрывать (form1.visible = false;).

Можно закрыть форму 1, но вы должны запустить вторую форму, чтобы снова запустить messageloop, например так:

Application.Run(new form2());


Удачи вам!