用户控件无法正确显示在屏幕上

时间:2010-04-10 12:38:19

标签: c# winforms user-controls dock

我的应用程序有几个控件。就像在一个屏幕左侧有TreeView,GridView中间有分页,右侧有4个按钮。当窗体处于最大化状态时,控件会正确显示,但如果我将其最小化,则控件将无法正确显示在屏幕上。

我尝试了不同的表格布局等不同的技巧..在dat我添加了一个面板等...

但我无法解决问题。

如何创建这种类型的屏幕,其尺寸与窗口大小无关?

由于

1 个答案:

答案 0 :(得分:2)

前一段时间我遇到了同样的问题。在我的情况下,我在一个GroupBox中有一个Button和一个ListView,它位于一个SplitContainer中,它位于TabControl上的UserControl中。我想要右上方的按钮位于并锚定,ListView占用了剩余的空间,所以我无法停靠它。相反,它固定在所有四个地方。

在我的情况下,我的按钮和列表视图在设计器中正常工作并且表现正常,但在我正在运行的应用程序中,按钮位于右侧,ListView尺寸也有太大的宽度。

对于第一个错误修正,我做了一些关于将设计器中的按钮定位在左侧的一些迭代,检查它的运行模式,重新对齐设计器中的按钮与我在上次运行时的印象。

所以我得到了它的工作,并开始与我在我的应用程序中必须做的其他事情。过了一会儿我得到了一个新的功能请求,并在这个混乱的东西中需要另一个按钮。这次我在新的用户控件上完成了gui元素的重建,只是为了查看问题是否再次出现。令我惊讶的是,这个gui mock只是按照预期行事。

在我的代码中,我没有任何关于更改位置,大小,锚点,停靠点等的内容。所以问题必须在设计师创建的InitializeComponents()代码中。

我从两个版本的差异开始,看不出任何大的差异(有很多差异,但只有大小,位置或名称等未成年人)。所以我开始将我疯狂的usercontrol中的代码放入模拟并在我的应用程序中运行模拟。经过多次复制后,问题也出现在我的模拟中,所以我找到了问题的根本原因。

您如何看待哪种财产导致疯狂行为? 这是 SplitContainer MinimumSize

因此,要真正解决问题的根本原因,您应该重新开始使用空的UserControl(或Form),并将所有元素放在其上,并使用所需的行为(大小,位置,锚点,停靠点)。

没有更多!

然后测试这个模拟是否符合您的需要,如果没有,请在此处发布此代码并告诉我们您希望看到的内容。