У меня есть форма с кнопкой «Поиск». Когда я нажимаю его, открывается другая форма для поиска элемента. Когда пользователь нажимает на X в этой второй форме, чтобы закрыть его, я действительно не хочу, чтобы он закрывался, я просто хочу сделать его невидимым (по secondForm.visible = false
).Как правильно переопределить метод OnFormClosing() в C#
Я нашел, что мне нужно только переопределить метод OnFormClosing()
, и я сделал это в классе формы, но он вообще не выполняется. Я знаю, что это не выполняется, потому что когда в следующий раз нажата кнопка «Поиск» (вместо do new SecondForm()
она пытается просто сделать secondForm.visible = true
) Я получаю исключение, в котором говорится, что я не могу работать с удаленным объектом (secondForm
) или что-то типа того. Таким образом, вторая форма только что была закрыта, а не видна.
В этот момент я начинаю думать то, что мне нужно назначить, каким-то образом (который я obviusly не знаю), этот новый метод переопределение кнопки X.
EDIT:
Это мой перекрытый метод во втором от класса:
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
if (e.CloseReason == CloseReason.WindowsShutDown) return;
this.Visible = false;
}
Это то, что я делаю, когда кнопка «Поиск» щелкают:
private void btnSearch_Click(object sender, EventArgs e)
{
if (subFormCreated)
subFormSearch.Visible = true;
else
initializeSubFormSearch();
}
private void initializeSubFormSearch()
{
subFormSearch = new SubForm(listaPersonas, actualMostrado);
subFormSearch.Show();
subFormCreated = true;
}
Наконец, исключение составляет то, что я получаю ObjectDisposedException
. Точное сообщение - это что-то вроде (я не знаю, правильно ли я его перетаскиваю) ObjectDisposedException was unhandled. Cannot get access to the deleted object. Name of the object: SubForm.
Пожалуйста, укажите точный код и точное сообщение об исключении. – CodeCaster