我们经常在做Winform项目的时候,会遇到父窗体下面有几个子窗体,当几个子窗体轮番点击的时候或许没有问题,看着好像还可以,但把父窗体放大或者缩小就会发现这个子窗体全都弹出来了,这是为什么呢?因为正常情况下你觉得没有问题是因为你点击新的子窗体把原先的子窗体覆盖了而已,如果一个项目中出现很多个子窗体,你觉得你会不会傻掉,项目最后客户看到这种情况是不认同的。
那该怎么办呢?
加入我们要做如下的:
点击子窗体只让窗体的标题变颜色方便辨认,而不需要原先的窗体被覆盖节约资源。。。。。
我们首先创建一个方法OpenFrm
/// <summary>
/// 打开子窗体
/// </summary>
/// <param name="targetFrm">目标子窗体</param>
/// <param name="isMDI">是否以MDI方式打开</param>
private void OpenFrm(Form targetFrm,bool isMDI)
{
Form form = Application.OpenForms[targetFrm.Name];
if (form != null)
{
form.Close();//在点击一次按钮,等于把窗体关闭后重新打开
}
if(isMDI==true)
{