powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
12 сообщений из 12, страница 1 из 1
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009421
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
У меня Visual Basic.NET
Вопрос:
Есть два форма
Form1
Form2
Создал на Form1 кнопка. Как мне сделать что при нажатия кнопки открыть вторую форму и одновременно закрыть первую.
За ранее Спасибо!
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009430
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь Visual Basic.NET 2010 год написать забыл.
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009444
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abisma2008Есть два форма
Form1
Form2
Создал на Form1 кнопка. Как мне сделать что при нажатия кнопки открыть вторую форму и одновременно закрыть первую.

вы не поверите

form2.Open();
form1.Close();
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009469
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation,

Не получается
Ошибка 1 "Open" не является членом "WindowsApplication1.Form2"
Ошибка 2 "WindowsApplication1.Form1"
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009476
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pation,

Me.Close()
Form2.Show()
Если так то оба окно закрывается
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009509
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите!!!
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009542
pyroman69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abisma2008pation,

Me.Close()
Form2.Show()
Если так то оба окно закрывается
me.close незя, завершит работу главный поток и вторая форма не откроется. me.Hide надо. Затем на закрытие второй формы поставить обработчик, в нем писать me.Close. То. отрывается вторая форма, первая исчезает, закрывается вторая форма, программа завершает свою работу
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009590
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pyroman69,

Извините за глупий вопрос где написать me.close?
Где Private Sub Form2_Load искал не нашел
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009596
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Me.Hide();
Form2.Show();
Me.Show();
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009616
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Syrex,

Спасибо всем!
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38009804
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abisma2008, раз ты пишешь на VB.NET, то там есть класс WindowsFormsApplicationBase со свойством ShutdownStyle. Пример его использования на C# читай в Closing a form and then call another one и читай MSDN.

Пример с вызовом Hide() я бы использовать не стал т.к. это означает что форма останется в памяти даже если она не используется. Для небольшого приложения это, возможно, не будет проблемой. Если же приложение постоянно создает и закрывает формы, то память будет быстро истрачена.

В C# можно сделать свой класс наследник ApplicationContext чтобы не использовать WindowsFormsApplicationBase из сборки Microsoft.VisualBasic.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
class MyApplicationContext : ApplicationContext
{
	public MyApplicationContext()
	{
	}

	public MyApplicationContext(Form mainForm) : base(mainForm)
	{
	}

	[SecuritySafeCritical]
	protected override void OnMainFormClosed(object sender, EventArgs e)
	{
		new UIPermission(UIPermissionWindow.AllWindows).Assert();
		FormCollection openForms = Application.OpenForms;
		PermissionSet.RevertAssert();

		if (openForms.Count > 0)
		{
			MainForm = openForms[0];
		}
		else
		{
			base.OnMainFormClosed(sender, e);
		}
	}
}



Чтобы использовать его немного меняем Program.cs:
Код: c#
1.
2.
3.
4.
5.
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1());
var appContext = new MyApplicationContext(new Form1());
Application.Run(appContext);


Старую форму закрываем после открытия новой, чтобы коллекция Application.OpenForms не была пустой и приложение не завершало свой работы.
...
Рейтинг: 0 / 0
По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
    #38052678
Abisma2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazileAbisma2008, раз ты пишешь на VB.NET, то там есть класс WindowsFormsApplicationBase со свойством ShutdownStyle. Пример его использования на C# читай в Closing a form and then call another one и читай MSDN.

Пример с вызовом Hide() я бы использовать не стал т.к. это означает что форма останется в памяти даже если она не используется. Для небольшого приложения это, возможно, не будет проблемой. Если же приложение постоянно создает и закрывает формы, то память будет быстро истрачена.

В C# можно сделать свой класс наследник ApplicationContext чтобы не использовать WindowsFormsApplicationBase из сборки Microsoft.VisualBasic.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
class MyApplicationContext : ApplicationContext
{
	public MyApplicationContext()
	{
	}

	public MyApplicationContext(Form mainForm) : base(mainForm)
	{
	}

	[SecuritySafeCritical]
	protected override void OnMainFormClosed(object sender, EventArgs e)
	{
		new UIPermission(UIPermissionWindow.AllWindows).Assert();
		FormCollection openForms = Application.OpenForms;
		PermissionSet.RevertAssert();

		if (openForms.Count > 0)
		{
			MainForm = openForms[0];
		}
		else
		{
			base.OnMainFormClosed(sender, e);
		}
	}
}



Чтобы использовать его немного меняем Program.cs:
Код: c#
1.
2.
3.
4.
5.
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1());
var appContext = new MyApplicationContext(new Form1());
Application.Run(appContext);


Старую форму закрываем после открытия новой, чтобы коллекция Application.OpenForms не была пустой и приложение не завершало свой работы.

Спасибо за вниманию!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / По нажатию на кнопку перейти в вторую форму и сразу закрыть первую
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]