Form.OnClosing(CancelEventArgs) Form.OnClosing(CancelEventArgs) Form.OnClosing(CancelEventArgs) Form.OnClosing(CancelEventArgs) Method

定義

Closing イベントを発生させます。Raises the Closing event.

protected:
 virtual void OnClosing(System::ComponentModel::CancelEventArgs ^ e);
protected virtual void OnClosing (System.ComponentModel.CancelEventArgs e);
abstract member OnClosing : System.ComponentModel.CancelEventArgs -> unit
override this.OnClosing : System.ComponentModel.CancelEventArgs -> unit
Protected Overridable Sub OnClosing (e As CancelEventArgs)

パラメーター

e
CancelEventArgs CancelEventArgs CancelEventArgs CancelEventArgs

イベント データを格納している CancelEventArgsA CancelEventArgs that contains the event data.

次のコード例ではClosing場合にテスト内のテキストをTextBoxが変更されました。The following code example uses Closing to test if the text in a TextBox has changed. ファイルに変更を保存するかどうか、ユーザーが求められます。If it has, the user is asked whether to save the changes to a file.

private:
   void Form1_Closing( Object^ /*sender*/, System::ComponentModel::CancelEventArgs^ e )
   {
      // Determine if text has changed in the textbox by comparing to original text.
      if ( textBox1->Text != strMyOriginalText )
      {
         // Display a MsgBox asking the user to save changes or abort.
         if ( MessageBox::Show( "Do you want to save changes to your text?", "My Application", MessageBoxButtons::YesNo ) == ::DialogResult::Yes )
         {
            // Cancel the Closing event from closing the form.
            e->Cancel = true;

            // Call method to save file...
         }
      }
   }
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
   // Determine if text has changed in the textbox by comparing to original text.
   if (textBox1.Text != strMyOriginalText)
   {
      // Display a MsgBox asking the user to save changes or abort.
      if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
         MessageBoxButtons.YesNo) ==  DialogResult.Yes)
      {
         // Cancel the Closing event from closing the form.
         e.Cancel = true;
         // Call method to save file...
      }
   }
}
   Private Sub Form1_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
      ' Determine if text has changed in the textbox by comparing to original text.
      If textBox1.Text <> strMyOriginalText Then
         ' Display a MsgBox asking the user to save changes or abort.
         If MessageBox.Show("Do you want to save changes to your text?", "My Application", MessageBoxButtons.YesNo) = DialogResult.Yes Then
            ' Cancel the Closing event from closing the form.
            e.Cancel = True
         End If ' Call method to save file...
      End If
   End Sub 'Form1_Closing
End Class 'Form1

注釈

注意事項

OnClosingメソッドは、.NET Framework version 2.0 で廃止されています。 を使用して、OnFormClosingメソッド代わりにします。The OnClosing method is obsolete in the .NET Framework version 2.0; use the OnFormClosing method instead.

イベントを発生させると、イベント ハンドラーがデリゲートから呼び出されます。Raising an event invokes the event handler through a delegate. 詳細については、次を参照してください。処理とイベントの発生します。For more information, see Handling and Raising Events.

OnClosing メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理することもできます。The OnClosing method also allows derived classes to handle the event without attaching a delegate. このメソッドのオーバーライドは、派生クラスでイベントを処理するための手法をお勧めします。Overriding this method is the preferred technique for handling the event in a derived class.

注意事項

OnClosedOnClosingメソッドを呼び出さない場合に、Application.Exitメソッドが呼び出され、アプリケーションを終了します。The OnClosed and OnClosing methods are not called when the Application.Exit method is called to exit your application. 呼び出す必要がありますを実行する必要があるこれらのメソッドのいずれかで検証コードがある場合、Form.Closeメソッドを呼び出す前に個別にフォームを開くたびに、Exitメソッド。If you have validation code in either of these methods that must be executed, you should call the Form.Close method for each open form individually before calling the Exit method.

注意 (継承者)

派生クラスで OnClosing(CancelEventArgs) をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnClosing(CancelEventArgs) メソッドを呼び出してください。When overriding OnClosing(CancelEventArgs) in a derived class, be sure to call the base class's OnClosing(CancelEventArgs) method so that registered delegates receive the event.

適用対象

こちらもご覧ください