1

因此,如果没有图片,这将很难描述(无法在工作中上传任何内容),但我有一个包含 2 个组框和 2 个按钮的表单,布局如下:

group    button    group
box      button    box

我需要做哪些疯狂的锚组合才能使其左框的右边缘、按钮和右框的左边缘保持绝对,而其他一切都自动调整大小?我尝试了左框的顶部、底部、左侧和右侧的顶部、底部、右侧,但这让我产生了一种奇怪的效果,按钮和框之间的空间变大了。

抱歉,描述太弱了,再一次,没有照片很难做到。如果您有任何问题,请在评论中提出,我会尽力而为。

4

3 回答 3

2

这对Control.Anchor. 相反,您可以尝试使用TableLayoutPanel

TableLayoutPanel tlp = new TableLayoutPanel()
                       {
                           RowCount = 2,
                           ColumnCount = 3,
                           ColumnStyles = {
                               new ColumnStyle(SizeType.AutoSize),
                               new ColumnStyle(SizeType.Absolute, buttonWidth),
                               new ColumnStyle(SizeType.AutoSize)
                           }
                       };

tlp.Controls.Add(groupBox1, 0, 0);
tlp.Controls.Add(button1, 1, 0);
tlp.Controls.Add(button2, 1, 1);
tlp.Controls.Add(groupBox2, 2, 0);

tlp.SetRowSpan(groupBox1, 2);
tlp.SetRowSpan(groupBox2, 2);

您可能需要使用ColumnStyle(SizeType.Percent, 50)而不是自动调整大小,我不确定这种行为。

于 2013-03-13T16:20:53.290 回答
1

将所有内容锚定在顶部和左侧。将右侧框锚定到右侧和底部。

于 2013-03-13T15:48:39.657 回答
0

您不能将所有三列(组框、按钮、组框)都包装在一个网格中,有 3 列,其中第 1 列和第 3 列具有固定宽度,而中间的具有可变宽度?

我知道这适用于 XAML 窗口。不过,不确定是否使用 WinForms。

于 2013-03-13T15:54:07.333 回答