Application.Run Application.Run Application.Run Application.Run Method

Definition

Beginnt die Ausführung einer Standardnachrichtenschleife einer Anwendung für den aktuellen Thread.Begins running a standard application message loop on the current thread.

Überlädt

Run() Run() Run() Run()

Beginnt die Ausführung einer Standardmeldungsschleife einer Anwendung für den aktuellen Thread ohne Formular.Begins running a standard application message loop on the current thread, without a form.

Run(ApplicationContext) Run(ApplicationContext) Run(ApplicationContext) Run(ApplicationContext)

Beginnt die Ausführung einer Standardnachrichtenschleife einer Anwendung für den aktuellen Thread mit einem ApplicationContext.Begins running a standard application message loop on the current thread, with an ApplicationContext.

Run(Form) Run(Form) Run(Form) Run(Form)

Beginnt die Ausführung einer Standardnachrichtenschleife einer Anwendung für den aktuellen Thread und zeigt das angegebene Formular an.Begins running a standard application message loop on the current thread, and makes the specified form visible.

Run() Run() Run() Run()

Beginnt die Ausführung einer Standardmeldungsschleife einer Anwendung für den aktuellen Thread ohne Formular.Begins running a standard application message loop on the current thread, without a form.

public:
 static void Run();
public static void Run ();
static member Run : unit -> unit
Public Shared Sub Run ()

Ausnahmen

Eine Hauptnachrichtenschleife wird für diesen Thread bereits ausgeführt.A main message loop is already running on this thread.

Hinweise

In einer Win32-basierten oder Windows Forms Anwendung ist eine Nachrichten Schleife eine Routine im Code, die Benutzer Ereignisse verarbeitet, z. b. Mausklicks und Tastatureingaben.In a Win32-based or Windows Forms application, a message loop is a routine in code that processes user events, such as mouse clicks and keyboard strokes. Jede aktive, Windows-basierte Anwendung benötigt eine aktive Nachrichten Schleife, die als Hauptnachrichten Schleife bezeichnet wird.Every running Windows-based application requires an active message loop, called the main message loop. Wenn die Hauptnachrichten Schleife geschlossen wird, wird die Anwendung beendet.When the main message loop is closed, the application exits. In Windows Forms wird diese Schleife geschlossen, wenn die Exit -Methode aufgerufen wird, oder wenn ExitThread die-Methode für den Thread aufgerufen wird, der die Hauptnachrichten Schleife ausgeführt hat.In Windows Forms, this loop is closed when the Exit method is called, or when the ExitThread method is called on the thread that is running the main message loop.

Die meisten Windows Forms Entwickler müssen diese Version der-Methode nicht verwenden.Most Windows Forms developers will not need to use this version of the method. Sie sollten die Run(Form) -Überladung verwenden, um eine Anwendung mit einem Hauptformular zu starten, damit die Anwendung beendet wird, wenn das Hauptformular geschlossen wird.You should use the Run(Form) overload to start an application with a main form, so that the application terminates when the main form is closed. Verwenden Sie für alle anderen Situationen die Run(ApplicationContext) -Überladung, die die ApplicationContext Bereitstellung eines Objekts für eine bessere Kontrolle über die Lebensdauer der Anwendung unterstützt.For all other situations, use the Run(ApplicationContext) overload, which supports supplying an ApplicationContext object for better control over the lifetime of the application.

Siehe auch

Run(ApplicationContext) Run(ApplicationContext) Run(ApplicationContext) Run(ApplicationContext)

Beginnt die Ausführung einer Standardnachrichtenschleife einer Anwendung für den aktuellen Thread mit einem ApplicationContext.Begins running a standard application message loop on the current thread, with an ApplicationContext.

public:
 static void Run(System::Windows::Forms::ApplicationContext ^ context);
public static void Run (System.Windows.Forms.ApplicationContext context);
static member Run : System.Windows.Forms.ApplicationContext -> unit
Public Shared Sub Run (context As ApplicationContext)

Parameter

context
ApplicationContext ApplicationContext ApplicationContext ApplicationContext

Ein ApplicationContext, in dem die Anwendung ausgeführt wird.An ApplicationContext in which the application is run.

Ausnahmen

Eine Hauptnachrichtenschleife wird für diesen Thread bereits ausgeführt.A main message loop is already running on this thread.

Beispiele

Das Beispiel zeigt zwei Formulare an und beendet die Anwendung, wenn beide Formulare geschlossen sind.The example displays two forms and exits the application when both forms are closed. Wenn die Anwendung gestartet und beendet wird, wird die Position der einzelnen Formulare gespeichert.When the application starts and exits, the position of each form is remembered. In diesem Beispiel wird veranschaulicht, wie ApplicationContextein zusammen mit der Application.Run(context) -Methode verwendet wird, um beim Starten der Anwendung mehrere Formulare anzuzeigen.This example demonstrates how to use an ApplicationContext, along with the Application.Run(context) method, to display multiple forms when the application starts.

Die Klasse MyApplicationContext erbt von ApplicationContext und verfolgt, wenn jedes Formular geschlossen ist, und beendet den aktuellen Thread, wenn beide vorhanden sind.The class MyApplicationContext inherits from ApplicationContext and keeps track when each form is closed, and exits the current thread when they both are. Die-Klasse speichert die Positionen der einzelnen Formulare für den Benutzer.The class stores the positions of each form for the user. Die Formular Positionsdaten werden in einer Datei mit dem Appdata.txt Namen gespeichert, die an dem von UserAppDataPathfestgelegten Speicherort erstellt wird.The form position data is stored in a file titled Appdata.txt that is created in the location determined by UserAppDataPath. Die Main -Methode Application.Run(context) Ruft auf, um die Anwendung ApplicationContextmit dem zu starten.The Main method calls Application.Run(context) to start the application given the ApplicationContext.

Der Code für das AppForm1 - AppForm2 Formular und das-Formular wird aus Gründen der Kürze nicht angezeigt.The code for the AppForm1 and AppForm2 forms is not shown for the purpose of brevity. Informationen zum ApplicationContext gesamten Codelisting finden Sie unter Übersicht über die-Klasse.See the ApplicationContext class overview for the whole code listing.

// The class that handles the creation of the application windows
ref class MyApplicationContext: public ApplicationContext
{
private:
   int _formCount;
   AppForm1^ _form1;
   AppForm2^ _form2;
   System::Drawing::Rectangle _form1Position;
   System::Drawing::Rectangle _form2Position;
   FileStream^ _userData;

public:

   MyApplicationContext()
   {
      _formCount = 0;
      
      // Handle the ApplicationExit event to know when the application is exiting.
      Application::ApplicationExit += gcnew EventHandler( this, &MyApplicationContext::OnApplicationExit );
      try
      {
         
         // Create a file that the application will store user specific data in.
         _userData = gcnew FileStream( String::Concat( Application::UserAppDataPath, "\\appdata.txt" ),FileMode::OpenOrCreate );
      }
      catch ( IOException^ e ) 
      {
         
         // Inform the user that an error occurred.
         MessageBox::Show( "An error occurred while attempting to show the application. The error is: {0}", dynamic_cast<String^>(e) );
         
         // Exit the current thread instead of showing the windows.
         ExitThread();
      }

      
      // Create both application forms and handle the Closed event
      // to know when both forms are closed.
      _form1 = gcnew AppForm1;
      _form1->Closed += gcnew EventHandler( this, &MyApplicationContext::OnFormClosed );
      _form1->Closing += gcnew CancelEventHandler( this, &MyApplicationContext::OnFormClosing );
      _formCount++;
      _form2 = gcnew AppForm2;
      _form2->Closed += gcnew EventHandler( this, &MyApplicationContext::OnFormClosed );
      _form2->Closing += gcnew CancelEventHandler( this, &MyApplicationContext::OnFormClosing );
      _formCount++;
      
      // Get the form positions based upon the user specific data.
      if ( ReadFormDataFromFile() )
      {
         
         // If the data was read from the file, set the form
         // positions manually.
         _form1->StartPosition = FormStartPosition::Manual;
         _form2->StartPosition = FormStartPosition::Manual;
         _form1->Bounds = _form1Position;
         _form2->Bounds = _form2Position;
      }

      
      // Show both forms.
      _form1->Show();
      _form2->Show();
   }

   void OnApplicationExit( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      
      // When the application is exiting, write the application data to the
      // user file and close it.
      WriteFormDataToFile();
      try
      {
         
         // Ignore any errors that might occur while closing the file handle.
         _userData->Close();
      }
      catch ( Exception^ ) 
      {
      }

   }

private:

   void OnFormClosing( Object^ sender, CancelEventArgs^ /*e*/ )
   {
      
      // When a form is closing, remember the form position so it
      // can be saved in the user data file.
      if ( dynamic_cast<AppForm1^>(sender) != nullptr )
            _form1Position = (dynamic_cast<Form^>(sender))->Bounds;
      else
      if ( dynamic_cast<AppForm1^>(sender) != nullptr )
            _form2Position = (dynamic_cast<Form^>(sender))->Bounds;
   }

   void OnFormClosed( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      
      // When a form is closed, decrement the count of open forms.
      // When the count gets to 0, exit the app by calling
      // ExitThread().
      _formCount--;
      if ( _formCount == 0 )
      {
         ExitThread();
      }
   }

   bool WriteFormDataToFile()
   {
      
      // Write the form positions to the file.
      UTF8Encoding^ encoding = gcnew UTF8Encoding;
      RectangleConverter^ rectConv = gcnew RectangleConverter;
      String^ form1pos = rectConv->ConvertToString( _form1Position );
      String^ form2pos = rectConv->ConvertToString( _form2Position );
      array<Byte>^dataToWrite = encoding->GetBytes( String::Concat( "~", form1pos, "~", form2pos ) );
      try
      {
         
         // Set the write position to the start of the file and write
         _userData->Seek( 0, SeekOrigin::Begin );
         _userData->Write( dataToWrite, 0, dataToWrite->Length );
         _userData->Flush();
         _userData->SetLength( dataToWrite->Length );
         return true;
      }
      catch ( Exception^ ) 
      {
         
         // An error occurred while attempting to write, return false.
         return false;
      }

   }

   bool ReadFormDataFromFile()
   {
      
      // Read the form positions from the file.
      UTF8Encoding^ encoding = gcnew UTF8Encoding;
      String^ data;
      if ( _userData->Length != 0 )
      {
         array<Byte>^dataToRead = gcnew array<Byte>(_userData->Length);
         try
         {
            
            // Set the read position to the start of the file and read.
            _userData->Seek( 0, SeekOrigin::Begin );
            _userData->Read( dataToRead, 0, dataToRead->Length );
         }
         catch ( IOException^ e ) 
         {
            String^ errorInfo = dynamic_cast<String^>(e);
            
            // An error occurred while attempt to read, return false.
            return false;
         }
         
         // Parse out the data to get the window rectangles
         data = encoding->GetString( dataToRead );
         try
         {
            
            // Convert the String* data to rectangles
            RectangleConverter^ rectConv = gcnew RectangleConverter;
            String^ form1pos = data->Substring( 1, data->IndexOf( "~", 1 ) - 1 );
            _form1Position =  *safe_cast<Rectangle^>(rectConv->ConvertFromString( form1pos ));
            String^ form2pos = data->Substring( data->IndexOf( "~", 1 ) + 1 );
            _form2Position =  *safe_cast<Rectangle^>(rectConv->ConvertFromString( form2pos ));
            return true;
         }
         catch ( Exception^ ) 
         {
            
            // Error occurred while attempting to convert the rectangle data.
            // Return false to use default values.
            return false;
         }
      }
      else
      {
         
         // No data in the file, return false to use default values.
         return false;
      }
   }
};
// The class that handles the creation of the application windows
class MyApplicationContext : ApplicationContext
{

    private int _formCount;
    private AppForm1 _form1;
    private AppForm2 _form2;

    private Rectangle _form1Position;
    private Rectangle _form2Position;

    private FileStream _userData;

    private MyApplicationContext()
    {
        _formCount = 0;

        // Handle the ApplicationExit event to know when the application is exiting.
        Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

        try
        {
            // Create a file that the application will store user specific data in.
            _userData = new FileStream(Application.UserAppDataPath + "\\appdata.txt", FileMode.OpenOrCreate);

        }
        catch (IOException e)
        {
            // Inform the user that an error occurred.
            MessageBox.Show("An error occurred while attempting to show the application." +
                            "The error is:" + e.ToString());

            // Exit the current thread instead of showing the windows.
            ExitThread();
        }

        // Create both application forms and handle the Closed event
        // to know when both forms are closed.
        _form1 = new AppForm1();
        _form1.Closed += new EventHandler(OnFormClosed);
        _form1.Closing += new CancelEventHandler(OnFormClosing);
        _formCount++;

        _form2 = new AppForm2();
        _form2.Closed += new EventHandler(OnFormClosed);
        _form2.Closing += new CancelEventHandler(OnFormClosing);
        _formCount++;

        // Get the form positions based upon the user specific data.
        if (ReadFormDataFromFile())
        {
            // If the data was read from the file, set the form
            // positions manually.
            _form1.StartPosition = FormStartPosition.Manual;
            _form2.StartPosition = FormStartPosition.Manual;

            _form1.Bounds = _form1Position;
            _form2.Bounds = _form2Position;
        }

        // Show both forms.
        _form1.Show();
        _form2.Show();
    }

    private void OnApplicationExit(object sender, EventArgs e)
    {
        // When the application is exiting, write the application data to the
        // user file and close it.
        WriteFormDataToFile();

        try
        {
            // Ignore any errors that might occur while closing the file handle.
            _userData.Close();
        }
        catch { }
    }

    private void OnFormClosing(object sender, CancelEventArgs e)
    {
        // When a form is closing, remember the form position so it
        // can be saved in the user data file.
        if (sender is AppForm1)
            _form1Position = ((Form)sender).Bounds;
        else if (sender is AppForm2)
            _form2Position = ((Form)sender).Bounds;
    }

    private void OnFormClosed(object sender, EventArgs e)
    {
        // When a form is closed, decrement the count of open forms.

        // When the count gets to 0, exit the app by calling
        // ExitThread().
        _formCount--;
        if (_formCount == 0)
        {
            ExitThread();
        }
    }

    private bool WriteFormDataToFile()
    {
        // Write the form positions to the file.
        UTF8Encoding encoding = new UTF8Encoding();

        RectangleConverter rectConv = new RectangleConverter();
        string form1pos = rectConv.ConvertToString(_form1Position);
        string form2pos = rectConv.ConvertToString(_form2Position);

        byte[] dataToWrite = encoding.GetBytes("~" + form1pos + "~" + form2pos);

        try
        {
            // Set the write position to the start of the file and write
            _userData.Seek(0, SeekOrigin.Begin);
            _userData.Write(dataToWrite, 0, dataToWrite.Length);
            _userData.Flush();

            _userData.SetLength(dataToWrite.Length);
            return true;

        }
        catch
        {
            // An error occurred while attempting to write, return false.
            return false;
        }

    }

    private bool ReadFormDataFromFile()
    {
        // Read the form positions from the file.
        UTF8Encoding encoding = new UTF8Encoding();
        string data;

        if (_userData.Length != 0)
        {
            byte[] dataToRead = new byte[_userData.Length];

            try
            {
                // Set the read position to the start of the file and read.
                _userData.Seek(0, SeekOrigin.Begin);
                _userData.Read(dataToRead, 0, dataToRead.Length);

            }
            catch (IOException e)
            {
                string errorInfo = e.ToString();
                // An error occurred while attempt to read, return false.
                return false;
            }

            // Parse out the data to get the window rectangles
            data = encoding.GetString(dataToRead);

            try
            {
                // Convert the string data to rectangles
                RectangleConverter rectConv = new RectangleConverter();
                string form1pos = data.Substring(1, data.IndexOf("~", 1) - 1);

                _form1Position = (Rectangle)rectConv.ConvertFromString(form1pos);

                string form2pos = data.Substring(data.IndexOf("~", 1) + 1);
                _form2Position = (Rectangle)rectConv.ConvertFromString(form2pos);

                return true;

            }
            catch
            {
                // Error occurred while attempting to convert the rectangle data.
                // Return false to use default values.
                return false;
            }

        }
        else
        {
            // No data in the file, return false to use default values.
            return false;
        }
    }

    [STAThread]
    static void Main(string[] args)
    {

        // Create the MyApplicationContext, that derives from ApplicationContext,
        // that manages when the application should exit.

        MyApplicationContext context = new MyApplicationContext();

        // Run the application with the specific context. It will exit when
        // all forms are closed.
        Application.Run(context);

    }
}
' The class that handles the creation of the application windows
Public Class MyApplicationContext
    Inherits ApplicationContext

    Private _formCount As Integer
    Private _form1 As AppForm1
    Private _form2 As AppForm2

    Private _form1Position As Rectangle
    Private _form2Position As Rectangle

    Private _userData As FileStream

    Public Sub New()
        MyBase.New()
        _formCount = 0

        ' Handle the ApplicationExit event to know when the application is exiting.
        AddHandler Application.ApplicationExit, AddressOf OnApplicationExit

        Try
            ' Create a file that the application will store user specific data in.
            _userData = New FileStream(Application.UserAppDataPath + "\appdata.txt", FileMode.OpenOrCreate)

        Catch e As IOException
            ' Inform the user that an error occurred.
            MessageBox.Show("An error occurred while attempting to show the application." +
                            "The error is:" + e.ToString())

            ' Exit the current thread instead of showing the windows.
            ExitThread()
        End Try

        ' Create both application forms and handle the Closed event
        ' to know when both forms are closed.
        _form1 = New AppForm1()
        AddHandler _form1.Closed, AddressOf OnFormClosed
        AddHandler _form1.Closing, AddressOf OnFormClosing
        _formCount = _formCount + 1

        _form2 = New AppForm2()
        AddHandler _form2.Closed, AddressOf OnFormClosed
        AddHandler _form2.Closing, AddressOf OnFormClosing
        _formCount = _formCount + 1

        ' Get the form positions based upon the user specific data.
        If (ReadFormDataFromFile()) Then
            ' If the data was read from the file, set the form
            ' positions manually.
            _form1.StartPosition = FormStartPosition.Manual
            _form2.StartPosition = FormStartPosition.Manual

            _form1.Bounds = _form1Position
            _form2.Bounds = _form2Position
        End If

        ' Show both forms.
        _form1.Show()
        _form2.Show()
    End Sub

    Private Sub OnApplicationExit(ByVal sender As Object, ByVal e As EventArgs)
        ' When the application is exiting, write the application data to the
        ' user file and close it.
        WriteFormDataToFile()

        Try
            ' Ignore any errors that might occur while closing the file handle.
            _userData.Close()
        Catch
        End Try
    End Sub

    Private Sub OnFormClosing(ByVal sender As Object, ByVal e As CancelEventArgs)
        ' When a form is closing, remember the form position so it
        ' can be saved in the user data file.
        If TypeOf sender Is AppForm1 Then
            _form1Position = CType(sender, Form).Bounds
        ElseIf TypeOf sender Is AppForm2 Then
            _form2Position = CType(sender, Form).Bounds
        End If
    End Sub

    Private Sub OnFormClosed(ByVal sender As Object, ByVal e As EventArgs)
        ' When a form is closed, decrement the count of open forms.

        ' When the count gets to 0, exit the app by calling
        ' ExitThread().
        _formCount = _formCount - 1
        If (_formCount = 0) Then
            ExitThread()
        End If
    End Sub

    Private Function WriteFormDataToFile() As Boolean
        ' Write the form positions to the file.
        Dim encoding As UTF8Encoding = New UTF8Encoding()

        Dim rectConv As RectangleConverter = New RectangleConverter()
        Dim form1pos As String = rectConv.ConvertToString(_form1Position)
        Dim form2pos As String = rectConv.ConvertToString(_form2Position)

        Dim dataToWrite As Byte() = encoding.GetBytes("~" + form1pos + "~" + form2pos)

        Try
            ' Set the write position to the start of the file and write
            _userData.Seek(0, SeekOrigin.Begin)
            _userData.Write(dataToWrite, 0, dataToWrite.Length)
            _userData.Flush()

            _userData.SetLength(dataToWrite.Length)
            Return True

        Catch
            ' An error occurred while attempting to write, return false.
            Return False
        End Try

    End Function

    Private Function ReadFormDataFromFile() As Boolean
        ' Read the form positions from the file.
        Dim encoding As UTF8Encoding = New UTF8Encoding()
        Dim data As String

        If (_userData.Length <> 0) Then
            Dim dataToRead(_userData.Length) As Byte

            Try
                ' Set the read position to the start of the file and read.
                _userData.Seek(0, SeekOrigin.Begin)
                _userData.Read(dataToRead, 0, dataToRead.Length)

            Catch e As IOException
                Dim errorInfo As String = e.ToString()
                ' An error occurred while attempt to read, return false.
                Return False
            End Try

            ' Parse out the data to get the window rectangles
            data = encoding.GetString(dataToRead)

            Try
                ' Convert the string data to rectangles
                Dim rectConv As RectangleConverter = New RectangleConverter()
                Dim form1pos As String = data.Substring(1, data.IndexOf("~", 1) - 1)

                _form1Position = CType(rectConv.ConvertFromString(form1pos), Rectangle)

                Dim form2pos As String = data.Substring(data.IndexOf("~", 1) + 1)
                _form2Position = CType(rectConv.ConvertFromString(form2pos), Rectangle)

                Return True

            Catch
                ' Error occurred while attempting to convert the rectangle data.
                ' Return false to use default values.
                Return False
            End Try

        Else
            ' No data in the file, return false to use default values.
            Return False
        End If
    End Function

End Class

Public Module MyApplication
    Public Sub Main()
        ' Create the MyApplicationContext, that derives from ApplicationContext,
        ' that manages when the application should exit.

        Dim context As MyApplicationContext = New MyApplicationContext()

        ' Run the application with the specific context. It will exit when
        ' all forms are closed.
        Application.Run(context)
    End Sub
End Module

Hinweise

Die Nachrichten Schleife wird ausgeführt Exit , ExitThread bis oder aufgerufen wird ThreadExit , oder das-Ereignis wird für das Kontext Objekt ausgelöst.The message loop runs until Exit or ExitThread is called or the ThreadExit event is raised on the context object.

Siehe auch

Run(Form) Run(Form) Run(Form) Run(Form)

Beginnt die Ausführung einer Standardnachrichtenschleife einer Anwendung für den aktuellen Thread und zeigt das angegebene Formular an.Begins running a standard application message loop on the current thread, and makes the specified form visible.

public:
 static void Run(System::Windows::Forms::Form ^ mainForm);
public static void Run (System.Windows.Forms.Form mainForm);
static member Run : System.Windows.Forms.Form -> unit
Public Shared Sub Run (mainForm As Form)

Parameter

mainForm
Form Form Form Form

Ein Form, das das anzuzeigende Formular darstellt.A Form that represents the form to make visible.

Ausnahmen

Eine Hauptnachrichtenschleife wird für den aktuellen Thread bereits ausgeführt.A main message loop is already running on the current thread.

Beispiele

Im folgenden Codebeispiel werden Zahlen in einem Listenfeld auf einem Formular aufgelistet.The following code example lists numbers in a list box on a form. Jedes Mal, wenn button1Sie auf klicken, fügt die Anwendung der Liste eine weitere Nummer hinzu.Each time you click button1, the application adds another number to the list.

Die Main -Methode Run Ruft auf, um die Anwendung zu starten, die listBox1das Formular button1, und erstellt.The Main method calls Run to start the application, which creates the form, listBox1, and button1. Wenn der Benutzer klickt button1, fügt button1_Click die-Methode dem Listenfeld die Zahlen 1 bis 3 hinzu und zeigt MessageBoxeinen an.When the user clicks button1, the button1_Click method adds numbers one to three to the list box, and displays a MessageBox. Wenn der Benutzer auf Nein klickt MessageBox, wird der button1_Click Liste von der-Methode eine weitere Zahl hinzugefügt.If the user clicks No on the MessageBox, the button1_Click method adds another number to the list. Wenn der Benutzer auf Jaklickt, ruft Exit die Anwendung auf, um alle verbleibenden Nachrichten in der Warteschlange zu verarbeiten und dann zu beenden.If the user clicks Yes, the application calls Exit to process all remaining messages in the queue and then to quit.

Das Beispiel erfordert, listBox1 dass button1 und erstellt und in einem Formular abgelegt wurden.The example requires that listBox1 and button1 have been created and placed on a form.

public:
   static void main()
   {
      // Starts the application.
      Application::Run( gcnew Form1 );
   }

private:
   void button1_Click( Object^ sender, System::EventArgs^ e )
   {
      // Populates a list box with three numbers.
      int i = 3;
      for ( int j = 1; j <= i; j++ )
      {
         listBox1->Items->Add( j );
      }
      
      /* Determines whether the user wants to exit the application.
       * If not, adds another number to the list box. */
      while ( MessageBox::Show( "Exit application?", "",
         MessageBoxButtons::YesNo ) == ::DialogResult::No )
      {
         // Increments the counter ands add the number to the list box.
         i++;
         listBox1->Items->Add( i );
      }
      
      // The user wants to exit the application. Close everything down.
      Application::Exit();
   }
public static void Main(string[] args) {
    // Starts the application.
    Application.Run(new Form1());
 }
 
 private void button1_Click(object sender, System.EventArgs e) {
    // Populates a list box with three numbers.
    int i = 3;
    for(int j=1; j<=i; j++) {
       listBox1.Items.Add(j);
    }
 
    /* Determines whether the user wants to exit the application.
     * If not, adds another number to the list box. */
    while (MessageBox.Show("Exit application?", "", MessageBoxButtons.YesNo) == 
       DialogResult.No) {
       // Increments the counter ands add the number to the list box.
       i++;
       listBox1.Items.Add(i);
    }
 
    // The user wants to exit the application. Close everything down.
    Application.Exit();
 }

<STAThread()> _
Shared Sub Main() 	
   ' Starts the application.
   Application.Run(New Form1())
End Sub

Private Sub button1_Click(sender As object, e As System.EventArgs)
   ' Populates a list box with three numbers.
   Dim i As Integer = 3
   Dim j As Integer
   For j = 1 To i - 1
      listBox1.Items.Add(j)
   Next

   ' Checks to see whether the user wants to exit the application.
   ' If not, adds another number to the list box.
   While (MessageBox.Show("Exit application?", "", MessageBoxButtons.YesNo) = _ 
      DialogResult.No)
      ' Increments the counter and adds the number to the list box.
      i = i + 1
      listBox1.Items.Add(i)
   End While

   ' The user wants to exit the application. Close everything down.
   Application.Exit()
End Sub

Hinweise

In der Regel Ruft die Hauptfunktion einer Anwendung diese Methode auf und übergibt ihr das Hauptfenster der Anwendung.Typically, the main function of an application calls this method and passes to it the main window of the application.

Diese Methode fügt dem mainForm -Parameter für das Closed -Ereignis einen Ereignishandler hinzu.This method adds an event handler to the mainForm parameter for the Closed event. Der-Ereignishandler ExitThread Ruft auf, um die Anwendung zu bereinigen.The event handler calls ExitThread to clean up the application.

Hinweis

Vor Dispose der Rückgabe dieser Form Methode wird die-Methode der-Klasse aufgerufen.The Dispose method of the Form class will be called prior to the return of this method.

Siehe auch

Gilt für: