Как вызвать форму, чтобы закрыть, когда она теряет фокус

1

У меня две формы: form1 и form2. В форме1 есть кнопка, которая при нажатии открывается на экран формы2 поверх формы1. form2 меньше, чем form1 (специально). Если событие click инициировано, а form2 открыто, пользователь нажимает на form1, form2 падает на задний план, как это делают большинство программ в окнах.

Я хочу: когда form2 открыт, и пользователь нажимает на что-то другое, form2 закрывается.

Я пробовал (по форме2):

private void formLostFocus (object sender, System.EventArgs e)
{
  this.Close();
}
  • 0
    Как вы открываете вторую форму? Передать владельца второй форме.
Теги:
forms
events

2 ответа

3
Лучший ответ

Попробуйте этот код

private void Form2_Deactivate(object sender, EventArgs e)
        {
            this.Close();
        }

И подписаться на деактивацию события

this.Deactivate += new System.EventHandler(this.Form2_Deactivate);
  • 0
    Спасибо за помощь.
0

Используйте этот код:

Это событие, которое откроет 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();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню