的形式.GotFocus禁用关闭按钮
本文关键字:关闭按钮 GotFocus | 更新日期: 2023-09-27 18:11:36
我有一个c# Windows窗体应用程序,它有一个主窗体,在它的构造函数中打开另外两个窗体。我将它们命名为side-panels。
主窗体已经处理了GotFocus事件,该事件为侧面板窗体调用form . bringtofront()。
启用此功能时(即GotFocus被处理),主表单的关闭按钮停止工作。
如何检查关闭按钮是否在事件处理程序中按下?
public Canvas()
{
InitializeComponent();
this.GotFocus += new EventHandler(WindowGotFocus);
tool.Show();
pp.Show();
}
public void WindowGotFocus(object sender, EventArgs e)
{
tool.BringToFront();
pp.BringToFront();
}
当我按下关闭按钮的主要形式,它得到焦点,WindowGotFocus方法被调用,应用程序不关闭。如果我评论这个。GotFocus += new EventHandler(WindowGotFocus);'在构造函数中,它可以工作。
我需要这个功能,以便在用户从另一个应用程序切换回该应用程序时再次显示侧板。
当然不行。您导致表单失去焦点,这意味着就窗口而言,点击从未发生过。
处理这个问题的正确方法是使工具窗口成为主窗口的子窗口:
var parent = new Form();
var child = new Form();
parent.AddOwnedForm(child);
parent.Show();
child.Show();
这将自动处理你期望的行为-毕竟,你期望的行为,因为其他应用程序做完全相同的事情:)除了确保子窗口显示时,主窗口,它也关闭所有的子窗口时,父窗口关闭,除其他事项。