Control.Layout Event

Occurs when a control should reposition its child controls.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in

event LayoutEventHandler^ Layout {
	void add (LayoutEventHandler^ value);
	void remove (LayoutEventHandler^ value);
/** @event */
public void add_Layout (LayoutEventHandler value)

/** @event */
public void remove_Layout (LayoutEventHandler value)

In JScript, you can handle the events defined by a class, but you cannot define your own.
Not applicable.

The Layout event occurs when child controls are added or removed, when the bounds of the control changes, and when other changes occur that can affect the layout of the control. The layout event can be suppressed using the SuspendLayout and ResumeLayout methods. Suspending layout enables you to perform multiple actions on a control without having to perform a layout for each change. For example, if you resize and move a control, each operation would raise a Layout event.

For more information about handling events, see Consuming Events.

The following code example centers a Form on the screen in the Layout event. This will keep the form centered as the user resizes it. This example requires that you have created a Form control.

   void MyForm_Layout( Object^ /*sender*/, System::Windows::Forms::LayoutEventArgs^ /*e*/ )
      // Center the Form on the user's screen everytime it requires a Layout.
      this->SetBounds( (Screen::GetBounds( this ).Width / 2) - (this->Width / 2), (Screen::GetBounds( this ).Height / 2) - (this->Height / 2), this->Width, this->Height, BoundsSpecified::Location );

private void MyForm_Layout(Object sender, 
    System.Windows.Forms.LayoutEventArgs e)
    // Center the Form on the user's screen everytime it requires a Layout.
        / 2 - this.get_Width() / 2, Screen.GetBounds(this).get_Height() 
        / 2 - this.get_Height() / 2, this.get_Width(), this.get_Height(), 
} //MyForm_Layout

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

Community Additions