2012-07-23 56 views
2

我目前停留在创造一个WinForms控制布局:如何使用顶部浮动控件和自动大小创建布局?

我的用户主机以下子控件:

RichTextBox 
Label B 
    Control B 
    Control B 
    Control B 
Label C 
    Control C 
    Control C 
Label D 
    Control D 
    Control D 

RichTextBox中始终可见。它的高度应该随着显示没有滚动条的所有文本而变大。

根据我的数据对象,我想显示几个附加信息,如果存在。例如,可以有5个控件B,0 C和20 D.
我希望控件“漂浮”到顶部。每个控件都应该能够在高度上增长以显示其全部内容。

我试过TableLayoutPanels,FlowLayoutPanels,docking和autosize设置的无数组合,但没有一个满足我的期望。

如何按照我上面发布的使用功能码头和自动大小的顺序来排列控件?

+0

这不是很清楚什么是“浮到上面”的意思。什么东西?在RichTextBox上?在RichTextBox上的位置? – LarsTech 2012-07-23 17:50:55

+0

我试图澄清一下:控件之间不应该有浪费的垂直空间。第一个控件应该是RichTextBox,位于标签B(如果存在)的正下方,后面是第一个控件B,...,后面是标签C(如果存在)... – citronas 2012-07-23 17:53:22

回答

4
  1. 用4行1列创建外部TableLayoutPanel。为行设置SizeType = AutoSize
  2. 将RichTextBox放入第一行。
  3. 创建带有许多行的内部TableLayoutPanel,因为您的控件计数和2列。为所有行设置SizeType = AutoSize。为内部TableLayoutPanel设置AutoSize = true。把它放在下一行。
  4. 将标签放置到第一个单元格。请致电ColumnSpan = 2
  5. 将控件放入其他行的第二列。
  6. 重复3-5其他内BC
相关问题