首页 > 代码库 > FormWindowState.Maximized的陷阱
FormWindowState.Maximized的陷阱
MDI父窗体下面有很多子窗体。子窗体打开时都是以FormWindowState.Maximized的属性打开的,但是结果部分如意,部分奇怪。
先贴上单实例的代码:
static TestForm _singleTon; public static void ShowSingleTon(FormWindowState windowState = FormWindowState.Maximized, Form parent = null) { if (_singleTon == null || _singleTon.IsDisposed) _singleTon = new ProductSetting(count); if (parent != null)//设置父窗口,以及对代理赋值 { _singleTon.MdiParent = parent; } if (_singleTon.WindowState != windowState) _singleTon.WindowState = windowState; if (Setting.SetFrontWindow != null && _singleTon.IsHandleCreated) Setting.SetFrontWindow(_singleTon.Handle); _singleTon.Show(); }
如此,调用TestForm.ShowSingleTon就能显示出单实例的窗口了。
但是同样的单实例实现逻辑,几个窗口最大化的效果却不一样,一部分的确是最大化的,另一部分子窗口是初始化的大小,虽然最小化和关闭的按钮是正常。
对比几个窗口的其余的代码,发现出问题的窗口在窗口设计界面,就设置了FormWindowState.Maximized
而正常显示的窗口这里是默认Normal值。
将窗口的maximized还原成Normal之后,问题解决了。
这里只能猜测,WindowState的属性值在修改时会触发窗口Size的重新计算,在需要的时候修改这个值,可以得到正确的结果。
症结点很坑爹。以后要更注意。
FormWindowState.Maximized的陷阱
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。