C#Winform父窗体做MDI容易后,显示子窗体,最小化后不见,无法依附在父窗体上,见视频!

MDI窗体中父窗体控件会覆盖孓窗体,网上很多解决方案表面上解决了问题但失去了MDI窗体的基本特性,并不实用比较赞成使用子窗体“代替”父窗体控件的方案。

不将控件放置在父窗体上而是放在一个普通的子窗体上面,但其基本表现与将控件放在父窗体中一致

  • 大小随着主窗体变化,覆盖整个客户区
  • 不能被关闭、最小化等一直处于填充整个客户区的状态

禁用最大化、最小化、关闭按钮、去除边框。

这里的大小是指背景窗体刚好覆盖默认父窗体()客户区的大小可以用 父窗体的 ClientSize 获得相应大小,我这里是因为用了其他窗体类不是原生的 Form ,所以看起来大小的数字很奇怪

在父窗体改变大小时,跟着改变子窗体大小:

我这里减去的是非客户区的大小在使用原苼 Form 时,可能不需要减或者减的大小有区别,请自行测试

以上基本上就解决了父窗体控件会覆盖子窗体的问题。
如果需要给父窗体加背景图片
这个方法对于使用dotnetbar等第三方form控件的情况可能不适用。
给上述子窗体加一个背景 pictureBox使其充满这个窗体,专门用于做背景图如果只用背景图,可以这样做不建议直接给窗体加背景(BackgroundImage),因为


我要回帖

更多关于 c是什么元素 的文章

 

随机推荐