Как я могу закрыть вторую форму из другой формы в C#?Как закрыть вторую форму?
Я использую это в Form1, но он не работает.
Form2 form2 = new Form2();
form2.Close();
Что случилось ???
Как я могу закрыть вторую форму из другой формы в C#?Как закрыть вторую форму?
Я использую это в Form1, но он не работает.
Form2 form2 = new Form2();
form2.Close();
Что случилось ???
Предположительно в какой-то момент времени, что первая форма созданного экземпляра типа Form2
и показал его. Затем он отбросил эту ссылку. Вместо того, чтобы выбросить эту ссылку прочь вы должны хранить его в поле экземпляра Form1
, так что вы можете получить доступ к нему позже и закрыть его:
public class Form1 : Form
{
private Form2 child;
private void PlaceWhereForm2IsShown()
{
child = new Form2();
child.Show();
}
private void CloseForm2()
{
child.Close();
}
}
Thx, он работает :) – user2920845
По второй форме оказывается, что форма уже открыто, вам необходимо получить экземпляр этой формы, а затем закройте его. Вы можете использовать свойство Application.OpenForms
, которое предоставит вам все открытые формы. Получите тот, который вам нужен, и закройте его.
var form2 = Application.OpenForms["Form2"] as Form2;
if (form2 != null)
form2.Close();
Вы должны закрыть экземпляр, который 'Show()' ред. – SLaks
Этот код создает новый экземпляр второй формы, а затем закрывает его. Обратите внимание, что вы никогда не называете 'form2.Show()' или 'form2.ShowDialogue()', поэтому форма никогда не будет показана. – gunr2171