用户控件不适合屏幕
Posted
技术标签:
【中文标题】用户控件不适合屏幕【英文标题】:User controls do not properly fit on the screen 【发布时间】:2010-04-10 12:38:18 【问题描述】:我的应用程序有几个控件。就像在一个屏幕中,左侧有 TreeView,中间有分页的 GridView,右侧有 4 个按钮。当表单处于最大化状态时,控件会正确显示,但如果我将其最小化,控件将无法正确显示在屏幕上。
我尝试了不同的技巧,比如表格布局……在数据中我添加了一个面板等……
但我无法解决问题。
如何创建与窗口大小无关的此类屏幕?
谢谢
【问题讨论】:
每个控件的锚点是什么?您可能会发现需要设置正确的锚点。 树视图的锚点是左下,gridview - 左-右-下,按钮面板 - 右-下.. 您希望控件如何可见或适合最小化的窗口? 像大多数标准软件一样具有此功能。 我认为您需要更清楚地定义“不适合屏幕”。有什么东西被切断了吗?什么?问题标题指dock.Full,但问题正文没有提及。 【参考方案1】:前段时间我也遇到了同样的问题。在我的情况下,我在一个 GroupBox 中有一个 Button 和一个 ListView,它位于一个 SplitContainer 内,它位于 TabControl 上的一个 UserControl 内。我希望右上角的按钮位于并锚定,ListView 占用了剩余空间,所以我无法停靠它。相反,它被锚定在所有四个地方。
在我的例子中,我的按钮和列表视图在设计器中正常工作并且行为正确,但在我正在运行的应用程序中,按钮位于右侧最远的位置,并且 ListView 的宽度也太大。
对于第一个错误修复,我做了一些迭代,将设计器中的按钮定位在更左侧一点,检查它的运行模式,根据我上次运行时的印象重新对齐设计器中的按钮。
所以我让它工作并重新开始我必须在我的应用程序中做的其他事情。过了一会儿,我收到了一个新功能请求,需要在这个杂乱的东西中添加另一个按钮。这次我在一个新的用户控件上完全重建了 gui 元素,只是为了看看问题是否再次出现。令我惊讶的是,这个 gui 模拟的行为与预期的一样。
在我的代码中,我没有更改位置、大小、锚点、停靠点等。所以问题必须在设计师创建的InitializeComponents()
代码中。
我从两个版本的差异开始,看不出有什么大的差异(有很多差异,但只有大小、位置或名称等次要差异)。所以我开始将我疯狂的用户控件中的代码放入模拟中并在我的应用程序中运行模拟。经过几次复制后,问题也出现在我的模拟中,所以我找到了问题的根本原因。
你怎么看,哪个属性导致了这种疯狂的行为? 这是我的 SplitContainer 的 MinimumSize!
因此,要真正找到问题的根本原因,您应该从一个空的 UserControl(或 Form)重新开始,然后将所有元素放置在其上并具有所需的行为(大小、位置、锚点、停靠)。
仅此而已!
然后测试这个模拟是否符合您的要求,如果不是,请在此处发布此代码并告诉我们您希望看到的内容。
【讨论】:
以上是关于用户控件不适合屏幕的主要内容,如果未能解决你的问题,请参考以下文章