我有一个包含多种形式的测试应用程序,其中一种是粗略的菜单。当我使用按钮选择其他表单之一时,单击菜单表单最小化。一切都好。
我现在想要的是当我完成第二个表格并点击红色十字架时,我希望菜单从托盘中打开。看起来很简单,但我把头发拉了出来。
private void Form2_Closing(object sender,System.ComponentModel.CancelEventArgs e)
{
var menu = FormControl.MainMenu;
menu.WindowState = FormWindowState.Normal;
e.Cancel = false;
}
FormControl是我的类,以确保只能打开一个MainMenu实例。代码在按钮单击事件中起作用,但我无法触发任何形式的关闭/关闭事件。
答案 0 :(得分:2)
form2.FormClosing += delegate
{
var menu = FormControl.MainMenu;
menu.WindowState = FormWindowState.Normal;
};
form2.ShowDialog(); //Or Show() whatever you wish.
答案 1 :(得分:1)
Button1 Click事件处理程序:
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.WindowState = FormWindowState.Normal;
WindowState = FormWindowState.Minimized;
form2.Show(this);//Passing Form1 as owner
form2.Activate();
}
Form2 FormClosed事件处理程序:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
this.Owner.WindowState = FormWindowState.Normal;//change state of owner form
}
<强>结果:强> 程序启动后 - 打开Form1。单击按钮后 - Form1最小化并弹出Form2。关闭Form2后 - Form1恢复到正常状态。
<强>恢复强> 仔细检查您的Form2 REALY是否属于FormClosed或FormClosing事件。