C# 锚定与winforms的混淆

C# 锚定与winforms的混淆,c#,winforms,.net-4.0,C#,Winforms,.net 4.0,因此,如果没有图片,这将很难描述(工作时无法上传任何内容),但我有一个表单,其中有两个GroupBox和两个按钮,如下所示: group button group box button box 我需要做什么疯狂的锚组合才能使左框的右边缘、按钮和右框的左边缘保持绝对,而其他所有东西都自动调整大小?我试过左框上下左和右框上下右,但这让我产生了一种奇怪的效果,按钮和框之间的空间变大了 抱歉,描述太弱,同样,没有图片很难做到。如果您有任何问题,请将其添加到评论中,我将尽我所

因此,如果没有图片,这将很难描述(工作时无法上传任何内容),但我有一个表单,其中有两个GroupBox和两个按钮,如下所示:

group    button    group
box      button    box
我需要做什么疯狂的锚组合才能使左框的右边缘、按钮和右框的左边缘保持绝对,而其他所有东西都自动调整大小?我试过左框上下左和右框上下右,但这让我产生了一种奇怪的效果,按钮和框之间的空间变大了


抱歉,描述太弱,同样,没有图片很难做到。如果您有任何问题,请将其添加到评论中,我将尽我所能。

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

难道不能将所有三列(groupbox、button、groupbox)都包装在一个网格中,共有三列,其中第1列和第3列的宽度固定,中间一列的宽度可变吗


我知道这适用于XAML windows。不过,对于WinForms还不能确定。

这在
控件.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)
而不是自动调整大小,我不确定其行为。

尝试过,但这不是我想要的效果。。。当我将表单自动调整到右侧时,我会使用groupbox…按钮尝试使所有内容保持相对于中心的位置。如果取消锚定所有内容,大小将保持固定,所有内容都将居中对齐。这是想要的效果吗?不,我确实想在调整窗口大小时调整框的大小,否则你只会得到周围的空白。。。如果我这样做的话,我只会把表单做成一个固定的大小,但我不想这样做。所以你想让按钮以固定的大小居中对齐,框在左右展开?正确,除了左分组框的右边缘和右分组框的左边缘,保持它们与中心对齐和恒定大小按钮之间的距离(如果这样做有意义的话)外,还有两个分开的容器排列成3列?主要是将控件包装在一个容器控件中,您可以在其中设置所需的宽度不同的栏目。就像一张桌子。评论格式破坏了你的图片,但我想我明白了。。。唯一的问题是我真的不知道你们在说什么网格控制,那个是WPF吗?我是Winforms的。是的,网格是WPF的一个组件。我能为WinForms找到的最接近的替代方案是TableLayoutPanel。它允许您添加和删除(以及调整大小)行和列。我认为这是最简单的解决方案。我将此代码添加到所讨论表单的构造函数中,现在加载时没有显示任何内容。。。尝试了
tlp.Visable=true
但不是这样,有什么想法吗?成功了,谢谢!最后不得不将第1列和第3列设置为百分比,将第50列和第2列设置为自动调整大小(将两个按钮都放在一个面板中,这样布局面板就不需要两行了)。通过可视化编辑器这样做不是更容易吗?这样,你就不必每次修改时都编译它了。@ThaMe90我最终还是在编辑器中完成了,但我使用了他在代码中给出的值,这些值非常接近于接受答案:P