Есть главная форма. Она вызывает дочернюю:
ClientPref formConnect = new ClientPref();
formConnect.Owner = this;
formConnect.ShowDialog();
В событие закрытия дочерней формы:
private void ClientPref_FormClosing(object sender, FormClosingEventArgs e)
{
if (!(this.Owner as Main).connected)
{
if (MessageBox.Show("Вы еще не подключились к серверу. Прервать попытку подключения?", "Прервать подключение?", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
(this.Owner as Main).client = null;
}
else e.Cancel = true;
}
}
Вроде бы, всё хорошо, но при закрытии главной формы снова срабатывает событие закрытия дочерней формы ровно столько раз, сколько раз она была открыта. На всякий случай, код события на закрытие главной формы таков:
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
server = null;
client = null;
}
Где и что я мог недоглядеть и недодумать?
ClientPref.Designer.cs), при выполнении по шагам ничего не обнаружил. Событие вызывается снова ровно после нажатия "крестика" на главной форме и непосредственно перед вызовом событияMain_FormClosing. – SaheR Jan 08 '16 at 18:35