Form.Close メソッド


フォームを閉じます。Closes the form.

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


ハンドルが作成されている間にフォームが閉じました。The form was closed while a handle was being created.

ActivatedWindowState に設定されている場合、このメソッドを Maximized イベントから呼び出すことはできません。You cannot call this method from the Activated event when WindowState is set to Maximized.


フォームが閉じられると、オブジェクト内で作成されたすべてのリソースが閉じられ、フォームが破棄されます。When a form is closed, all resources created within the object are closed and the form is disposed. Closing イベントを処理し、パラメーターとしてイベントハンドラーに渡される CancelEventArgsCancel プロパティを設定することによって、実行時にフォームを閉じることを防止できます。You can prevent the closing of a form at run time by handling the Closing event and setting the Cancel property of the CancelEventArgs passed as a parameter to your event handler. 閉じるフォームがアプリケーションのスタートアップフォームである場合は、アプリケーションが終了します。If the form you are closing is the startup form of your application, your application ends.

フォームが Close で破棄されない場合の2つの条件は、(1) がマルチドキュメントインターフェイス (MDI) アプリケーションの一部であり、フォームが表示されない場合です。および (2) ShowDialogを使用してフォームを表示しました。The two conditions when a form is not disposed on Close is when (1) it is part of a multiple-document interface (MDI) application, and the form is not visible; and (2) you have displayed the form using ShowDialog. このような場合は、Dispose 手動で呼び出して、すべてのフォームのコントロールにガベージコレクションのマークを付ける必要があります。In these cases, you will need to call Dispose manually to mark all of the form's controls for garbage collection.


モードレスウィンドウとして表示される FormClose メソッドを呼び出すと、フォームのリソースが既に解放されているため、Show メソッドを呼び出してフォームを表示することはできません。When the Close method is called on a Form displayed as a modeless window, you cannot call the Show method to make the form visible, because the form's resources have already been released. フォームを非表示にしてから表示できるようにするには、Control.Hide メソッドを使用します。To hide a form and then make it visible, use the Control.Hide method.


.NET Framework.NET Framework 2.0 より前では、Application.Exit メソッドを呼び出してアプリケーションを終了しても、Form.Closed イベントと Form.Closing イベントは発生しません。Prior to the .NET Framework.NET Framework 2.0, the Form.Closed and Form.Closing events are not raised when the Application.Exit method is called to exit your application. これらのイベントのいずれかで検証コードを実行する必要がある場合は、Exit メソッドを呼び出す前に、開いているフォームごとに Form.Close メソッドを呼び出す必要があります。If you have validation code in either of these events that must be executed, you should call the Form.Close method for each open form individually before calling the Exit method.