Freigeben über


Application.DoEvents-Methode

Verarbeitet alle Windows-Meldungen, die sich derzeit in der Meldungswarteschlange befinden.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Shared Sub DoEvents
'Usage

Application.DoEvents
public static void DoEvents ()
public:
static void DoEvents ()
public static void DoEvents ()
public static function DoEvents ()

Hinweise

Wenn Sie ein Windows Form ausführen, wird ein neues Formular erstellt, das dann auf zu behandelnde Ereignisse wartet. Immer dann, wenn das Formular ein Ereignis behandelt, wird der gesamte Code verarbeitet, der dem Ereignis zugeordnet ist. Alle anderen Ereignisse verbleiben in der Warteschlange. Während der Code das Ereignis behandelt, reagiert die Anwendung nicht. Beispielsweise wird das Fenster nicht neu aufgebaut, wenn ein anderes Fenster darüber gezogen wird.

Wenn Sie im Code DoEvents aufrufen, kann die Anwendung die anderen Ereignisse behandeln. Wenn Sie beispielsweise bei einem Formular, mit dem einer ListBox Daten hinzugefügt werden, dem Code DoEvents hinzufügen, wird das Formular neu aufgebaut, wenn ein anderes Fenster darüber gezogen wird. Wenn Sie DoEvents aus dem Code entfernen, wird das Formular so lange nicht neu aufgebaut, bis der Click-Ereignishandler der Schaltfläche die Ausführung abgeschlossen hat.

Im Gegensatz zu Visual Basic 6.0 ruft die DoEvents-Methode die Thread.Sleep-Methode nicht auf.

Üblicherweise wird diese Methode in einer Warteschleife verwendet, um Meldungen zu verarbeiten.

Warnung

Durch Aufrufen dieser Methode kann Code eventuell erneut durchlaufen werden, wenn eine Meldung ein Ereignis auslöst.

Beispiel

Im folgenden Codebeispiel wird die Verwendung der DoEvents-Methode veranschaulicht. Wenn das Beispiel ausgeführt wird, kann der Benutzer Grafikdateien in einem OpenFileDialog auswählen. Die ausgewählten Dateien werden im Formular angezeigt. Die DoEvents-Methode erzwingt den Neuaufbau des Formulars für jede geöffnete Grafikdatei. Wenn Sie dieses Beispiel ausführen möchten, fügen Sie den folgenden Code in ein Formular ein, das die PictureBox mit dem Namen PictureBox1, das OpenFileDialog mit dem Namen OpenFileDialog1 und eine Schaltfläche mit dem Namen fileButton enthält. Rufen Sie die InitializePictureBox-Methode und die InitializeOpenFileDialog-Methode aus dem Konstruktor oder der Load-Methode auf. Für dieses Beispiel ist es außerdem erforderlich, dass das Control.Click-Ereignis des Button-Steuerelements und das FileOk-Ereignis von OpenFileDialog mit den in dem Beispiel definierten Ereignishandlern verbunden sind. Beim Ausführen des Beispiels können Sie das Dialogfeld durch Klicken auf die Schaltfläche öffnen.

Private Sub InitializePictureBox()
    Me.PictureBox1 = New System.Windows.Forms.PictureBox
    Me.PictureBox1.BorderStyle = _
        System.Windows.Forms.BorderStyle.FixedSingle
    Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    Me.PictureBox1.Location = New System.Drawing.Point(72, 112)
    Me.PictureBox1.Name = "PictureBox1"
    Me.PictureBox1.Size = New System.Drawing.Size(160, 136)
    Me.PictureBox1.TabStop = False
End Sub

Private Sub InitializeOpenFileDialog()
    Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog

    ' Set the file dialog to filter for graphics files.
    Me.OpenFileDialog1.Filter = _
    "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"

    ' Allow the user to select multiple images.
    Me.OpenFileDialog1.Multiselect = True
    Me.OpenFileDialog1.Title = "My Image Browser"
End Sub

Private Sub fileButton_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles FileButton.Click
    OpenFileDialog1.ShowDialog()
End Sub


' This method handles the FileOK event.  It opens each file 
' selected and loads the image from a stream into PictureBox1.
Private Sub OpenFileDialog1_FileOk(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _
 Handles OpenFileDialog1.FileOk

    Me.Activate()
    Dim file, files() As String
    files = OpenFileDialog1.FileNames

    ' Open each file and display the image in PictureBox1.
    ' Call Application.DoEvents to force a repaint after each
    ' file is read.        
    For Each file In files
        Dim fileInfo As System.IO.FileInfo = New System.IO.FileInfo(file)
        Dim fileStream As System.IO.FileStream = fileInfo.OpenRead()
        PictureBox1.Image = System.Drawing.Image.FromStream(fileStream)
        Application.DoEvents()
        fileStream.Close()

        ' Call Sleep so the picture is briefly displayed, 
        'which will create a slide-show effect.
        System.Threading.Thread.Sleep(2000)
    Next
    PictureBox1.Image = Nothing
End Sub
private void InitializePictureBox()
{
    this.PictureBox1 = new System.Windows.Forms.PictureBox();
    this.PictureBox1.BorderStyle = 
        System.Windows.Forms.BorderStyle.FixedSingle;
    this.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
    this.PictureBox1.Location = new System.Drawing.Point(72, 112);
    this.PictureBox1.Name = "PictureBox1";
    this.PictureBox1.Size = new System.Drawing.Size(160, 136);
    this.PictureBox1.TabIndex = 6;
    this.PictureBox1.TabStop = false;
}

private void InitializeOpenFileDialog()
{
    this.OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog();

    // Set the file dialog to filter for graphics files.
    this.OpenFileDialog1.Filter = 
        "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|" + 
        "All files (*.*)|*.*";

    // Allow the user to select multiple images.
    this.OpenFileDialog1.Multiselect = true;
    this.OpenFileDialog1.Title = "My Image Browser";
    
}

private void fileButton_Click(System.Object sender, System.EventArgs e)
{
    OpenFileDialog1.ShowDialog();
}


// This method handles the FileOK event.  It opens each file 
// selected and loads the image from a stream into PictureBox1.
private void OpenFileDialog1_FileOk(object sender, 
    System.ComponentModel.CancelEventArgs e)
{

    this.Activate();
     string[] files = OpenFileDialog1.FileNames;

    // Open each file and display the image in PictureBox1.
    // Call Application.DoEvents to force a repaint after each
    // file is read.        
    foreach (string file in files )
    {
        System.IO.FileInfo fileInfo = new System.IO.FileInfo(file);
        System.IO.FileStream fileStream = fileInfo.OpenRead();
        PictureBox1.Image = System.Drawing.Image.FromStream(fileStream);
        Application.DoEvents();
        fileStream.Close();

        // Call Sleep so the picture is briefly displayed, 
        //which will create a slide-show effect.
        System.Threading.Thread.Sleep(2000);
    }
    PictureBox1.Image = null;
}
void InitializePictureBox()
{
   this->PictureBox1 = gcnew System::Windows::Forms::PictureBox;
   this->PictureBox1->BorderStyle =
      System::Windows::Forms::BorderStyle::FixedSingle;
   this->PictureBox1->SizeMode = PictureBoxSizeMode::StretchImage;
   this->PictureBox1->Location = System::Drawing::Point( 72, 112 );
   this->PictureBox1->Name = "PictureBox1";
   this->PictureBox1->Size = System::Drawing::Size( 160, 136 );
   this->PictureBox1->TabIndex = 6;
   this->PictureBox1->TabStop = false;
}

void InitializeOpenFileDialog()
{
   this->OpenFileDialog1 = gcnew System::Windows::Forms::OpenFileDialog;
   
   // Set the file dialog to filter for graphics files.
   this->OpenFileDialog1->Filter =
      "Images (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|" +
      "All files (*.*)|*.*";
   
   // Allow the user to select multiple images.
   this->OpenFileDialog1->Multiselect = true;
   this->OpenFileDialog1->Title = "My Image Browser";
}

void fileButton_Click( System::Object^ sender, System::EventArgs^ e )
{
   OpenFileDialog1->ShowDialog();
}

// This method handles the FileOK event.  It opens each file 
// selected and loads the image from a stream into PictureBox1.
void OpenFileDialog1_FileOk( Object^ sender,
   System::ComponentModel::CancelEventArgs^ e )
{
   this->Activate();
   array<String^>^ files = OpenFileDialog1->FileNames;
   
   // Open each file and display the image in PictureBox1.
   // Call Application.DoEvents to force a repaint after each
   // file is read.        
   for each ( String^ file in files )
   {
      System::IO::FileInfo^ fileInfo = gcnew System::IO::FileInfo( file );
      System::IO::FileStream^ fileStream = fileInfo->OpenRead();
      PictureBox1->Image = System::Drawing::Image::FromStream( fileStream );
      Application::DoEvents();
      fileStream->Close();
      
      // Call Sleep so the picture is briefly displayed, 
      //which will create a slide-show effect.
      System::Threading::Thread::Sleep( 2000 );
   }
   PictureBox1->Image = nullptr;
}
private void InitializePictureBox()
{
    this.pictureBox1 = new System.Windows.Forms.PictureBox();
    this.pictureBox1.set_BorderStyle(
        System.Windows.Forms.BorderStyle.FixedSingle);
    this.pictureBox1.set_SizeMode(PictureBoxSizeMode.StretchImage);
    this.pictureBox1.set_Location(new System.Drawing.Point(72, 112));
    this.pictureBox1.set_Name("pictureBox1");
    this.pictureBox1.set_Size(new System.Drawing.Size(160, 136));
    this.pictureBox1.set_TabIndex(6);
    this.pictureBox1.set_TabStop(false);
} //InitializePictureBox

private void InitializeOpenFileDialog()
{
    this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
    // Set the file dialog to filter for graphics files.
    this.openFileDialog1.set_Filter("Images (*.BMP;*.JPG;*.GIF)|" 
        + "*.BMP;*.JPG;*.GIF|All files (*.*)|*.*");
    // Allow the user to select multiple images.
    this.openFileDialog1.set_Multiselect(true);
    this.openFileDialog1.set_Title("My Image Browser");
} //InitializeOpenFileDialog

private void fileButton_Click(Object sender, System.EventArgs e)
{
    openFileDialog1.ShowDialog();
} //fileButton_Click

// This method handles the FileOK event. It opens each file 
// selected and loads the image from a stream into pictureBox1.
private void openFileDialog1_FileOk(Object sender, 
    System.ComponentModel.CancelEventArgs e)
{
    this.Activate();
    String files[] = openFileDialog1.get_FileNames();
    // Open each file and display the image in pictureBox1.
    // Call Application.DoEvents to force a repaint after each
    // file is read.
    for (int iCtr = 0; iCtr < files.length; iCtr++) {
        String file = files[iCtr];
        System.IO.FileInfo fileInfo = new System.IO.FileInfo(file);
        System.IO.FileStream fileStream = fileInfo.OpenRead();
        pictureBox1.set_Image(System.Drawing.Image.FromStream(fileStream));
        Application.DoEvents();
        fileStream.Close();
        // Call Sleep so the picture is briefly displayed, 
        // which will create a slide-show effect.
        System.Threading.Thread.Sleep(2000);
    }
    pictureBox1.set_Image(null);
} //openFileDialog1_FileOk

Plattformen

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Application-Klasse
Application-Member
System.Windows.Forms-Namespace
Exit
ExitThread
Run