当前位置: 首页 > 编程语言 > C#

锚定面板无法正确调整大小Share

时间:2023-04-10 21:34:36 C#

C#:锚定面板无法正确调整大小我在用户控件中遇到了自动调整面板大小的奇怪问题。该面板锚定到用户控件的所有4个边。但锚点并非总是如此:如果通过调整窗体大小来调整用户控件的大小,则右锚点和底部锚点无效。但是,如果通过使用窗体中的拆分器调整控件的大小,它就可以正常工作。所有其他控件也会受到调整大小的影响以正常工作,只有此面板不会这样做。我没有看到通过拆分器和调整表单大小之间的区别。只有通过移动拆分器来调整大小,才能在UserControl的OnResize中手动设置大小。如果通过调整窗体大小来调整大小,面板的高度和宽度不会更改为新值。编辑:更清楚:UserControl添加到TabPage并设置为Dock=DockType.Fill。编辑2:为了让它更复杂:这里是使用的控件的层次结构:表单包含一个带有2个控件(A和B)的拆分器。(B)包含一个带有splitContainer的用户控件(C)。(C)中的拆分container->panel1包含选项卡控件(D)。此选项卡控件(D)包含一个用户控件(E)(在选项卡页中)。这个用户控件(E)有一个拆分容器(F),其中放置了另一个带有tabControl(G)的用户控件。这个tabcontrol(G)有tabpages并且在这个页面中是描述的用户控件(H)。如果我将控件(H)直接放在拆分容器(C)的面板上,一切正常。由于添加到splitcontainer或tabpage的所有控件都设置了docktype=fill,我无法弄清楚为什么最后一个控件有这个问题。Windows窗体框架是否有限制子控件数量的限制?编辑:我上传了一个TestApplication,您可以使用它来重现此问题。http://rapidshare.de/files/49092516/TestApplication.zip.html它只出现在Vista下。WinXP和7工作正常...如果您调整表单大小,带有“...”按钮的文本框不会调整大小,但如果您通过垂直splitContainer调整大小,它工作正常。深度嵌套存在一个错误,其中内核耗尽堆栈空间,导致调整大小、停靠和锚定无提示地失败。请参阅https://web.archive.org/web/20140818095718/http://support.microsoft.com/kb/953934您已经谈到了“锚点”和“停靠点”,它们可以用于类似的目的,但行为不同.您的问题可能是您试图同时执行这两项操作,这会干扰您想要的行为。如果没有,也许尝试从一个切换到另一个。听起来您已经仔细检查了控件的数量,但您是否通过以下方式检查过:查看->其他窗口->文档大纲(我最近才发现的一个非常方便的工具)?最后,虽然它没有直接解决您的问题,但听起来您的UI非常复杂,如果您花一些时间考虑是否可以简化UI,您的用户可能会受益。当然,我不知道您的用户或您的应用程序的目的,您拥有的可能是最好的,但听起来可能是时候问这个问题了。祝你好运。问题不在于嵌套有多深;控件可以任意嵌套。锚定和对接通常不能很好地相互配合。我通常倾向于停靠锚,但是,无论您选择哪种解决方案,都应避免混合使用。以上是C#学习教程:C#:Theanchorpanelwillnotresizecorrectlyallthecontentshared.如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: