在最大化的同时调整用户控件内的组件大小

时间:2014-12-15 14:21:07

标签: c# user-controls maximize

我正在使用c#,我正在创建一个简单的设计,其中我有一个用户控件,其中的一些组件,如树视图和按钮。我正在尝试用一些节点填充树视图并将这些节点拖放到其他树视图中,并使用按钮将节点从一侧复制到另一个节点。

我遇到的问题是,当我最大化包含此用户控件的窗口时,对内部组件没有任何影响。

我已将用户控件的Dock属性设置为Fill。

我在用户控件中更改了按钮和树视图的锚属性,但行为并不像预期的那样。例如,我试图将右侧树视图的锚属性设置为Top,Bottom,Left =>结果是一场灾难

我还为所有按钮的锚属性做了很多组合,但没有给我正确的行为。我只需要最大化窗口形式,控件将以相同的比例最大化。

1 个答案:

答案 0 :(得分:0)

听起来你想要一个“3列”界面,你的两边都有TreeView,中间有Button,以便在两者之间移动。假设这是正确的,您可以使用TableLayout完成自动调整大小。

基本上,它会是这样的:

  1. 添加TableLayout并编辑行/列,以便有一行包含3列:
    • 第一列和最后一列的大小将为50%(并且会保留TreeView个。)
    • 中间将是(例如)120的绝对大小。这将保留您的Buttons
  2. 将此新TableLayout的属性设置为Dock - >填表格。这会使整个表格的大小与您的表单一起增长。
  3. 将您的TreeView控件添加到左/右列并将其设置为Dock - >填写相应的列。由于这些列是动态调整大小的,因此它们将随表单一起增长。
  4. 在您的中间栏中,添加Panel并将其设置为Dock - >填。我们在此处添加Panel来保存您用于移动的多个Button。这个Panel 不会大小增加,因为中间列的大小非常大。
  5. Button添加到中间Panel
  6. 没有屏幕截图,我不完全确定你想要实现的目标,但我相信这是顺利的。这个设置的好处是涉及零代码。