C#/winforms布局:具有右锚或底部锚的元素在父容器下消失

C#/winforms布局:具有右锚或底部锚的元素在父容器下消失,c#,winforms,C#,Winforms,有时,当我希望winforms控件也停靠在父容器(通常是UserControl)的右侧或底部时,它的边框会延伸到父容器的右侧或底部边框之外,因此它的一部分不再可见。即使锚点设置为右侧 这仅在应用程序运行时发生。只要我是设计师,一切看起来都很好 例如,我所做的就是将控件的“Anchor”属性设置为“Right” 有没有办法避免这种情况 在这个屏幕截图中,您可以看到groupbox“Transition”扩展到它的父级,并向右扩展 谢谢 我不太清楚你在说什么。你能改写这个句子吗 如果您的意思是,当

有时,当我希望winforms控件也停靠在父容器(通常是UserControl)的右侧或底部时,它的边框会延伸到父容器的右侧或底部边框之外,因此它的一部分不再可见。即使锚点设置为右侧

这仅在应用程序运行时发生。只要我是设计师,一切看起来都很好

例如,我所做的就是将控件的“Anchor”属性设置为“Right”

有没有办法避免这种情况

在这个屏幕截图中,您可以看到groupbox“Transition”扩展到它的父级,并向右扩展


谢谢

我不太清楚你在说什么。你能改写这个句子吗


如果您的意思是,当您调整父窗口的大小时,您希望控件也调整大小,那么您的思路是正确的。您应该更改锚定,以便控件锚定到左侧、顶部、右侧和底部。

如果您希望以恒定高度停靠到右侧:锚定:=顶部、右侧 如果要停靠到右下角:锚点:=右下角


您停靠在哪个父容器中?控件是否在父控件中?如果没有,那么它可以在其顶部调整大小(因为它实际上不是子控件)。

您可能需要处理控件的z顺序。

检查父控件(UserControl)的停靠和定位属性。在我看来,它们尚未设置,并且UserControl(而不是UserControl中的项)正在延伸到边界之外。

也许锚定是好的,但问题在于渲染。您是否尝试在容器控件中调用Invalidate()?
我记得很久以前在自定义控件中发生了类似的事情。我通过强制重新绘制控件解决了这个问题。

如果使用锚,那么就不能使用Dock(反之亦然)

锚点和停靠属性是 相互排斥。只有一个可以 一次一组,最后一组 优先权

我会检查控件的父控件是否是您认为它是的控件(可能是它的父控件:-))。 同时检查控件上的
Margin
属性和父控件上的
Padding
属性。
然后检查
AutoSize
属性。

父容器是一个自定义UserControlyes,我知道,这很难描述,但我会编辑我的帖子并重写它,是的,父容器确实是问题所在。对不起,误会了。它的锚被设置为顶部、左侧、右侧,然后这个问题就发生了!