C# 如何设置锚点以消除按钮之间的间距

C# 如何设置锚点以消除按钮之间的间距,c#,button,C#,Button,我有一些按钮在面板内,如图(1) 它是一个用户控件 我希望当有人使用我的usercontrol时,当调整面板大小时,按钮大小和它们之间的空间都会改变 事实上,我想要照片(3),但照片(2)会发生 我把面板的锚定在右边,左边,上面,波顿。如何修复如图3所示的按钮?! 1-为用户控件中的所有按钮设置“MaximumSize”和“MinimumSize”。如下所示: btnSave.MaximumSize = new Size(80, 30); btnSave.MinimumSize = new Si

我有一些按钮在面板内,如图(1) 它是一个用户控件

我希望当有人使用我的usercontrol时,当调整面板大小时,按钮大小和它们之间的空间都会改变

事实上,我想要照片(3),但照片(2)会发生

我把面板的锚定在右边,左边,上面,波顿。如何修复如图3所示的按钮?!

1-为用户控件中的所有按钮设置“MaximumSize”和“MinimumSize”。如下所示:

btnSave.MaximumSize = new Size(80, 30);
btnSave.MinimumSize = new Size(60, 30);
btnEdit.MaximumSize = new Size(80, 30);
btnEdit.MinimumSize = new Size(60, 30);
.
.
.
或从“属性”窗口设置

2-为左侧、右侧的所有按钮设置“锚定”属性

3-为用户控件中的“调整大小”事件编写以下代码

private void UserControl1_Resize(object sender, EventArgs e)
    {
        int lastLeft = 0 , lastWidth  = 0 ;
        foreach (Control ctrl in this.Controls)
        {
            ctrl.Left = lastLeft + lastWidth + 3;
            lastLeft = ctrl.Left;
            lastWidth = ctrl.Width;
        }
    }
注意:不要忘记,您必须从面板中剪切按钮并将其粘贴到用户控件中。您不需要编辑面板,您可以将其删除


希望这有用。

我更新了我的答案。lastLeft最好以0开头。