如何在失去焦点时触发表单关闭
How do I trigger a form to close when it loses focus
我有两个表单,form1 和 form2。 form1 有一个按钮,单击该按钮可在 form1 上方打开 form2 中心屏幕。 form2 小于 form1(故意)。如果点击事件被触发并且 form2 打开,然后用户点击 form1,form2 会像 windows 中的大多数程序一样进入后台。
我想要的是:当 form2 打开时,用户单击其他内容,form2 关闭。
我试过(在 form2 上):
private void formLostFocus (object sender, System.EventArgs e)
{
this.Close();
}
试试这个代码:
private void Form2_Deactivate(object sender, EventArgs e)
{
this.Close();
}
并订阅 Deactivate
事件
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();
}
在 form2 中使用 Deactivate,当您在窗体外部单击时将关闭窗体,并确保使用 TopMost = true;打开表格时。
private void Form2_Deactivate(object sender, EventArgs e)
{
this.Close();
}
我有两个表单,form1 和 form2。 form1 有一个按钮,单击该按钮可在 form1 上方打开 form2 中心屏幕。 form2 小于 form1(故意)。如果点击事件被触发并且 form2 打开,然后用户点击 form1,form2 会像 windows 中的大多数程序一样进入后台。
我想要的是:当 form2 打开时,用户单击其他内容,form2 关闭。
我试过(在 form2 上):
private void formLostFocus (object sender, System.EventArgs e)
{
this.Close();
}
试试这个代码:
private void Form2_Deactivate(object sender, EventArgs e)
{
this.Close();
}
并订阅 Deactivate
事件
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();
}
在 form2 中使用 Deactivate,当您在窗体外部单击时将关闭窗体,并确保使用 TopMost = true;打开表格时。
private void Form2_Deactivate(object sender, EventArgs e)
{
this.Close();
}