日期:2014-05-17  浏览次数:21717 次

C# winform 嵌套用户控件 拉伸界面 显示不正常
本帖最后由 bbl8713 于 2013-10-30 12:42:47 编辑
遇到一个项目
菜单计较复杂,所以我把一个复杂界面拆分为多个用户控件。
由于业务需要,很多页面是树状结构。所以直接用了嵌套用户控件,就是
"用户控件1".Controls.Add(用户控件2)
"用户控件2".Controls.Add(用户控件3)
"用户控件3".Controls.Add(用户控件4)
...
然后出现问题。

问题的现象是用户控件6容器里的UI控件显示异常。拉伸winform大小是出现。
如图:
原始画面:

拉伸后异常:

我第一次接触这样的项目,所以不清楚这种用法是否正确,请各位大神指点。
我减少一级嵌套就是正常的:


注意groupbox的边缘,所有用户控件的Dock属性都是Fill,所以正常应该是填充满整个区域的。
这个问题找了很久,没办法了,请大家帮助看看,感谢!!

VS2012的环境

测试代码:
http://cd.ctfs.ftn.qq.com/ftn_handler/532f22d5a8460bf571daa533b7bab11fce0154914b7834f3d57c58958f2b5a2ab710669febf17fdbef2e2ccfb513778ed2f9dae4655c907f0a23f15d06b1b6ae/?fname=XIANGMU.rar&k=2436613000eb9ccf58cb77321733501f5c055353060a005249525605021e565405064c090104071d575304060401550601520304313862682d772f777c664c420544610d&fr=00&&txf_fid=00000000f6f2a18f027f46d6922d8327c1f8510b

------解决方案--------------------
怎么不对了,我看两幅图一样嘛。
------解决方案--------------------
groupbox的Anchor属性啊
------解决方案--------------------
引用:
实际我在工程当中,并没有用到6级。大概4级的时候就会出现这种问题,而且这部分的UI会彻底乱掉。


从你界面可以看出,你 GroupBox 的Dock和Anchor属性都没有设置,
------解决方案--------------------
引用:
Quote: 引用:

groupbox的Anchor属性啊


我已经设置了用户控件的Dock属性为 Fill
就不需要设置Anchor属性啊,而且groupbox的Anchor是不能实现填充边界的啊。


你设置用户控件的dock没用,你要设置GroupBox的Anchor属性,这样才有用
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

groupbox的Anchor属性啊


我已经设置了用户控件的Dock属性为 Fill
就不需要设置Anchor属性啊,而且groupbox的Anchor是不能实现填充边界的啊。


你设置用户控件的dock没用,你要设置GroupBox的Anchor属性,这样才有用


我有设置groupbox的Dock属性为 Fill,就是出现了问题。我留有测试代码,就是多级嵌套以后才会出现这样的问题。请版主看我原贴的描述。有描述不当的地方请大家见谅,感谢各位的帮忙,谢谢!!

测试代码:
http://cd.ctfs.ftn.qq.com/ftn_handler/532f22d5a8460bf571daa533b7bab11fce0154914b7834f3d57c58958f2b5a2ab710669febf17fdbef2e2ccfb513778ed2f9dae4655c907f0a23f15d06b1b6ae/?fname=XIANGMU.rar&k=2436613000eb9ccf58cb77321733501f5c055353060a005249525605021e565405064c090104071d575304060401550601520304313862682d772f777c664c420544610d&fr=00&&txf_fid=00000000f6f2a18f027f46d6922d8327c1f8510b




你用的是VS2010?
------解决方案--------------------