【发布时间】:2010-09-18 22:54:39
【问题描述】:
这个问题相当简单,但最好用视觉来说明。请注意,所有屏幕截图均来自 Visual Studio 2005 设计图面。当我实际运行应用程序时,我发现没有任何区别。
这是我的用户控件(我们称之为 UC-1):
控件上的按钮设置为锚定到底部 + 右侧。
这是放置在特定父用户控件 (UC-A) 上时的样子:
请忽略颜色等的差异。一些样式是在用户控件的构造函数中完成的。
注意控件的底部被剪掉了。父级上使用的控件的实例设置有“FixedSingle”边框。另请注意,消耗的控件比原始控件高,表明按钮底部锚点设置受到尊重,但基本上超出了应有的位置。
要确认这肯定是父控件上的问题,请注意另一个用户控件 (UC-2) 在放置在同一父控件上时包含数据网格视图:
再次,使用的控件的实例设置有“FixedSingle”边框,这有助于说明剪辑。数据网格正确锚定在右下角。为了加强这个问题的复杂性,下面是第一个用户控件 (UC-1) 放置在不同的父用户控件 (UC-B) 上时:
alt text http://i38.tinypic.com/2rnyjd0.png
这是被表单使用时的第二个“已使用”控件 (UC-2):
注意,这次没有剪辑。
我花了很多时间搜索和尝试解决这个问题。我已经用尽了边距、填充、大小(最小/最大)、位置、锚点等的各种设置。我一生都无法弄清楚为什么这个用户控件会导致子用户控件像这样剪辑.
我注意到的另一件奇怪的事情是,当我在父用户控件设计表面(控件行为异常的地方)上执行 UNDO 时,即使撤消操作与这些控件无关,被剪裁的用户控件实例实际上也会移动位置。例如,如果我使主包含控件更大,然后撤消,几个子用户控件会跳起来。它们似乎在被剪裁时移动。非常可疑。
有人知道发生了什么吗??
【问题讨论】:
-
您找到解决方案了吗?
-
没有。这是去年的一个项目中的一个问题,我已经工作了很长时间。由于这是一个设计时问题,所以在我们开始工作后就不再担心了,所以我没有多想。
标签: winforms visual-studio-2005