C# 重新对齐子控件

C# 重新对齐子控件,c#,visual-studio,user-controls,C#,Visual Studio,User Controls,我正在重写自定义控件的DisplayRectangle属性 public override Rectangle DisplayRectangle { get { Rectangle rect = ThemeSupporter.GetInnerFrameRect(); rect.X += Padding.Left; rect.Y += Padding.Top; r

我正在重写自定义控件的DisplayRectangle属性

public override Rectangle DisplayRectangle
    {
        get
        {
            Rectangle rect = ThemeSupporter.GetInnerFrameRect();
            rect.X += Padding.Left;
            rect.Y += Padding.Top;
            rect.Width -= Padding.Left + Padding.Right;
            rect.Height -= Padding.Top + Padding.Bottom;
            return rect;
        }
    }
所以我的自定义控件的框架会影响子控件的停靠。每次更改控件的框架时,我都要重新对齐我的子控件。但我找不到一种方法来做到这一点。我想要这样的东西:

public FrameX Frame
{
  get { return FFrameX; }
  set { FFrameX = value; RealignChildControls(); }
}
相反,我像这样调整控件的大小

public void ControlResize()
    {
        Control control = GetControl();
        Rectangle oldB = control.Bounds;
        control.SetBounds(oldB.X + 1, oldB.Y + 1, oldB.Width - 1, oldB.Height - 1);
        control.SetBounds(oldB.X, oldB.Y, oldB.Width, oldB.Height);
    }
这当然会导致额外的抖动和缓慢。。有没有像RealignChildControls()这样的方法?

我找到了

control.PerformLayout();
这将重新调整子控件