У меня две формы: form1 и form2. В форме1 есть кнопка, которая при нажатии открывается на экран формы2 поверх формы1. form2 меньше, чем form1 (специально). Если событие click инициировано, а form2 открыто, пользователь нажимает на form1, form2 падает на задний план, как это делают большинство программ в окнах.
Я хочу: когда form2 открыт, и пользователь нажимает на что-то другое, form2 закрывается.
Я пробовал (по форме2):
private void formLostFocus (object sender, System.EventArgs e)
{
this.Close();
}
Попробуйте этот код
private void Form2_Deactivate(object sender, EventArgs e)
{
this.Close();
}
И подписаться на деактивацию события
this.Deactivate += new System.EventHandler(this.Form2_Deactivate);
Используйте этот код:
Это событие, которое откроет form2
private void button1_Click(object sender, EventArgs e)
{
Test.Form2 frm = new Test.Form2();
frm.TopMost = true;
frm.Show();
}
Используйте Deactivate в form2, который закроет форму, когда вы нажмете вне формы и убедитесь, что используете TopMost = true; при открытии формы.
private void Form2_Deactivate(object sender, EventArgs e)
{
this.Close();
}