如何保持自定义用户控件上的各个控件不会展开(并且仍然允许调整大小)

时间:2016-07-21 04:05:20

标签: winforms layout

我的用户控件在其设计器中看起来像这样。

[My User Control in its designer looks like this:[1]

但是当我把它放到父表单中时,它看起来像这样:

In the parent form it looks like this:

我有一个包含“文件夹”按钮和ComboBox的主面板。 右侧的小导航按钮位于嵌套面板中。

我希望单个控件调整大小,如果字体改变了, 但要保持它们的间距(这是我的一个小小的烦恼,许多应用程序无法很好地处理这个问题,例如,如果使用大字体,则无法访问整个表单,切断按钮上的标签等)。

我尝试了很多东西,但是我正在使用太多的变量(锚点,停靠点,minsize,maxsize,autosize),而不是处理所有的交互。我希望有人知道这个神奇的组合,所以我不必耗尽所有可能性。

我应该使用不同的布局容器吗?我还没有调查过表或流布局容器。我以为他们会让事情变得更复杂。

1 个答案:

答案 0 :(得分:1)

您可以使用停靠或锚点(但不能同时使用两者)。

  1. Usich锚定您指定控件应该具有恒定距离的父级边框,因此:

    • Folder应将锚点设置为Top + Bottom + Left
    • Version输入应该有锚设置Top + Bottom + Left + Right
    • Up部分的容器应该有锚点Top + Bottom + Right;
  2. 使用dock:

    • Folder应将Dock设置为Left;
    • Version输入应将Dock设置为Fill,并且应该是添加到容器中的第一个控件(在编辑器中单击右键单击"置于前面")
    • Up部分的容器应将Dock设置为Right
  3. 或者您可以使用TableLayoutPanel - 第一列和最后一列将具有恒定宽度,中间一列将与父级一起延伸。