创建一个包含填充的ContainerControl

时间:2014-03-06 21:11:54

标签: c# .net winforms controls

我想创建一个包含25px标头的控件。当我添加子控件时,我希望它们的行为就像在GroupBox中使用它们一样。 当控件的DockStyle设置为填充组框时,它的位置会自动设置为3;16,其大小为Width-6; Height-19。 我不想使用Padding或Margin,因为它们似乎不在GroupBox中使用。

我如何在自己的控件中实现相同的行为?

1 个答案:

答案 0 :(得分:1)

尝试覆盖面板的DisplayRectangle属性:

public class MyContainer : Panel {

  public override Rectangle DisplayRectangle {
    get {
      int headerHeight = 25;
      return new Rectangle(
        this.Padding.Left,
        this.Padding.Top + headerHeight,
        this.ClientSize.Width - 
          (this.Padding.Left + this.Padding.Right),
        this.ClientSize.Height - 
          (this.Padding.Top + this.Padding.Bottom + headerHeight));
    }
  }
}