Control.SuspendLayout メソッド


コントロールのレイアウト ロジックを一時的に中断します。Temporarily suspends the layout logic for the control.

 void SuspendLayout();
public void SuspendLayout ();
member this.SuspendLayout : unit -> unit
Public Sub SuspendLayout ()

次のコード例では、フォームに2つのボタンを追加します。The following code example adds two buttons to a form. この例では、SuspendLayout メソッドと ResumeLayout メソッドを使用して、ボタンの追加をトランザクションします。The example transactions the addition of the buttons by using the SuspendLayout and ResumeLayout methods.

   void AddButtons()
      // Suspend the form layout and add two buttons.
      Button^ buttonOK = gcnew Button;
      buttonOK->Location = Point(10,10);
      buttonOK->Size = System::Drawing::Size( 75, 25 );
      buttonOK->Text = "OK";
      Button^ buttonCancel = gcnew Button;
      buttonCancel->Location = Point(90,10);
      buttonCancel->Size = System::Drawing::Size( 75, 25 );
      buttonCancel->Text = "Cancel";
      array<Control^>^temp5 = {buttonOK,buttonCancel};
      this->Controls->AddRange( temp5 );
private void AddButtons()
   // Suspend the form layout and add two buttons.
   Button buttonOK = new Button();
   buttonOK.Location = new Point(10, 10);
   buttonOK.Size = new Size(75, 25);
   buttonOK.Text = "OK";

   Button buttonCancel = new Button();
   buttonCancel.Location = new Point(90, 10);
   buttonCancel.Size = new Size(75, 25);
   buttonCancel.Text = "Cancel";
   this.Controls.AddRange(new Control[]{buttonOK, buttonCancel});
Private Sub AddButtons()
   ' Suspend the form layout and add two buttons.
   Dim buttonOK As New Button()
   buttonOK.Location = New Point(10, 10)
   buttonOK.Size = New Size(75, 25)
   buttonOK.Text = "OK"
   Dim buttonCancel As New Button()
   buttonCancel.Location = New Point(90, 10)
   buttonCancel.Size = New Size(75, 25)
   buttonCancel.Text = "Cancel"
   Me.Controls.AddRange(New Control() {buttonOK, buttonCancel})
End Sub


ResumeLayout メソッドが呼び出されるまで、コントロールのレイアウトロジックは中断されます。The layout logic of the control is suspended until the ResumeLayout method is called.

SuspendLayout メソッドと ResumeLayout メソッドは、コントロールの複数の属性を調整するときに、複数の Layout イベントを抑制するために一緒に使用されます。The SuspendLayout and ResumeLayout methods are used in tandem to suppress multiple Layout events while you adjust multiple attributes of the control. たとえば、通常は SuspendLayout メソッドを呼び出した後、コントロールの SizeLocationAnchor、または Dock の各プロパティを設定してから、ResumeLayout メソッドを呼び出して変更を有効にします。For example, you would typically call the SuspendLayout method, then set the Size, Location, Anchor, or Dock properties of the control, and then call the ResumeLayout method to enable the changes to take effect.

ResumeLayout を正常に呼び出すには、保留中の SuspendLayout 呼び出しがない必要があります。There must be no pending calls to SuspendLayout for ResumeLayout to be successfully called.


親コントロールに複数のコントロールを追加する場合は、追加するコントロールを初期化する前に、SuspendLayout メソッドを呼び出すことをお勧めします。When adding several controls to a parent control, it is recommended that you call the SuspendLayout method before initializing the controls to be added. コントロールを親コントロールに追加した後、ResumeLayout メソッドを呼び出します。After adding the controls to the parent control, call the ResumeLayout method. これにより、多くのコントロールでアプリケーションのパフォーマンスが向上します。This will increase the performance of applications with many controls.