您的位置:首页 > 其它

如何控制静态Form类与普通的Form类之间的切换

2011-01-14 13:28 363 查看
  当我们在wm项目中需要经常显示一个窗体(比如是地图显示的窗体),而且这个窗体中显示的东西又比较多时,我们可以考虑在该窗体中定位一个单例模式的静态对象:

代码如下:

#region
private static readonly MapForm _instance = new MapForm();
#endregion
#region Properties
public static MapForm Instance
{
get
{
return _instance;
}
}

   #endregion

  接下去当我们在别的窗体中调用并显示MapForm时,如下代码:

  MapForm.Instance.Show();

   MapForm.Instance.TopMost=True;

然而,当我们关闭这个窗体时,如果没有通过该窗体的Closing事件使窗体处于隐藏的状态的话,下次再调用该MapForm窗体时,会出现该MapForm窗体的Menu菜单不可用,原因是刚才关闭窗体时,没有通过Closing事件个来完成如下的代码操作。

private void MapForm_Closing(object sender, CancelEventArgs e)
{
e.Cancel = true;

Visible = TopMost = false;
}

怎么样才能触发Closing事件呢,答案是把MapForm的MinimizeBox设为false,窗体在新建时MinimizeBox是为true的。默认情况下,show()窗体时,窗体的左上角是打叉的按钮,如果将MinimizeBox设为false,show()窗体时,窗体的左上角是OK的按钮。

  当然,如果你显示MapForm.ShowDialog()时,窗体的左上角是OK的按钮。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: