如何在groupBox控件之间添加间隙?

问题描述 投票:-1回答:1

在顶部。

private int gap = 0;

然后在一个按钮点击事件。

private void btnADD_Click(object sender, EventArgs e)
        {
            var fsd = new FolderSelectDialog();
            fsd.Title = "What to select";
            fsd.InitialDirectory = @"c:\";
            if (fsd.ShowDialog(IntPtr.Zero))
            {
                AddGroupBox(Path.GetFileName(fsd.FileName));
            }
        }

和AddGroupBox方法。

private void AddGroupBox(string Name)
        {
            gap = gap + 83;
            GroupBox gb = new GroupBox();
            gb.Location = new Point(3, gap);
            gb.Size = new Size(1311, 100);
            gb.BackColor = SystemColors.Window;
            gb.Text = Name;
            this.Controls.Add(gb);
        }

第一次在y上的位置是83,下一次在y上的位置是166,但是在1660上的新的groupBox仍然有一些接触到第一个groupBox或者在里面。

我不希望它们之间有空间,我希望第一个和下一个的边框会互相接触,就像新的和第一个的底部有一个共同的边框一样,每次添加一个新的groupBox时也是如此。

c# winforms
1个回答
1
投票

有很多方法可以做到这一点...

不如直接存储最后放置的GroupBox并使用它的Bounds.Bottom属性? 如果该变量为空,则放置在83的初始位置。

就像这样

private int startingY = 83;
private GroupBox lastGB = null;

private void AddGroupBox(string Name)
{
    GroupBox gb = new GroupBox();
    gb.Location = new Point(3, (lastGB==null ? startingY : lastGB.Bounds.Bottom));
    gb.Size = new Size(1311, 100);
    gb.BackColor = SystemColors.Window;
    gb.Text = Name;
    this.Controls.Add(gb);

    lastGB = gb;
}
© www.soinside.com 2019 - 2024. All rights reserved.