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

时间:2020-04-24 04:36:55

标签: c# winforms

在顶部:

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时都是相同的。

1 个答案:

答案 0 :(得分:1)

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

仅存储最后放置的GroupBox并使用其Bounds.Bottom属性如何?如果该变量为null,则将其放置在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;
}
相关问题