代码之家  ›  专栏  ›  技术社区  ›  Pragmateek

查找GroupBox内部区域的左上原点

  •  1
  • Pragmateek  · 技术社区  · 11 年前

    我知道 GroupBox 几乎像一个 Panel 具有标题和边框,但不可滚动。

    所以在 分组框 这就是我所说的“ 内部区域 “我们希望显示内部元素的位置。

    但似乎 分组框 不将元素放置在该区域中,而是像哑面板一样直接放置在其左上角。

    以下是“问题”的简单说明:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
    
            Button button = new Button { Text = "Hello!!!" };
    
            GroupBox groupBox = new GroupBox { Text = "Some useful stuff", Dock = DockStyle.Fill };
            groupBox.Controls.Add(button);
    
            this.Controls.Add(groupBox);
        }
    }
    

    这产生了一个丑陋的结果:

    GroupBox with Button inside

    我可以玩 Button Location 属性添加偏移量,但这不是100%令人满意。

    将元素放置在“内部区域”中最干净的方法是什么?

    有没有办法知道边框和页眉的大小,以便使用正确的偏移量?

    1 回复  |  直到 11 年前
        1
  •  2
  •   LarsTech    11 年前

    尝试使用GroupBox的DisplayRectangle属性:

    Button button = new Button { Text = "Hello!!!" };
    button.Location = groupBox.DisplayRectangle.Location;
    groupBox.Controls.Add(button);