如何控制静态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的按钮。
代码如下:
#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的按钮。
相关文章推荐
- abap报表中(ALV或者普通屏幕的定制控制中)如何让列可以使用求和按钮
- 在 64 位版本的 Windows 上,如何在 32 位版本的 ASP.NET 1.1 和 64 位版本的 ASP.NET 2.0 之间切换
- GoogleVR怎样在普通场景和VR场景之间进行切换
- 如何在多个CUDA版本之间自由切换、编译程序
- 如何控制 VC 中控件间的TAB切换顺序
- vue-cli项目以及普通静态网页如何部署到github pages
- iOS 工程如何在debug和release之间切换
- Google静态地图-如何显示两点之间路线2(url过长问题)
- silverlight中如何方便在多个"场景"即Xaml文件之间随意切换?
- Handler是如何实现线程之间的切换的
- Linux 普通用户su命令切换控制
- css控制表格之间行之间的颜色切换
- 如何在同一台计算机上的oracle10g和11g之间进行oracle环境切换
- iframe之间静态html页面如何传递参数?
- android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler&利用broadcast广播机制
- 如何实现3G/4G与Wi-Fi网络之间稳定且无缝地切换
- android脚步---如何看log之程序停止运行,和UI线程和非UI线程之间切换
- 如何控制多线程之间的优先级顺序
- ubuntu如何在多个工作区之间自由切换以及添加返回桌面图标