Questa documentazione è stata archiviata e non viene gestita.

Metodo Application.DoEvents

Elabora tutti i messaggi di Windows attualmente presenti nella coda di messaggi.

Spazio dei nomi: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

public static void DoEvents ()
public static void DoEvents ()
public static function DoEvents ()

Quando un Windows Form viene eseguito, crea il nuovo form, che resterà in attesa di eventi da gestire. Ogni volta che il form gestisce un evento, elabora tutto il codice associato a quell'evento. Tutti gli altri eventi attendono in coda. Mentre il codice gestisce l'evento, l'applicazione non risponde. La finestra non viene ad esempio ridisegnata se viene trascinata in primo piano un'altra finestra.

Se all'interno del codice viene chiamato il metodo DoEvents, l'applicazione sarà in grado di gestire gli altri eventi. Nel caso ad esempio di un form che aggiunge dati a una ListBox, se al codice si aggiunge il metodo DoEvents, il form si ridisegnerà quando su di esso verrà trascinata un'altra finestra. Se si rimuove il metodo DoEvents dal codice, il form non si ridisegnerà finché il gestore di eventi Click del pulsante non avrà ultimato l'esecuzione.

A differenza di Visual Basic 6.0, il metodo DoEvents non effettua la chiamata al metodo Thread.Sleep.

In genere questo metodo è utilizzato all'interno di un ciclo per elaborare i messaggi.

Nota di avvisoAttenzione

La chiamata a questo metodo può comportare una nuova immissione del codice qualora un messaggio generi un evento.

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo del metodo DoEvents. All'esecuzione di questo esempio, l'utente può selezionare file di grafica da un oggetto OpenFileDialog. I file selezionati vengono visualizzati nel form. Il metodo DoEvents impone il ridisegno del form per ciascun file di grafica aperto. Per eseguire l'esempio, incollare il seguente codice in un form contenente un oggetto PictureBox denominato PictureBox1, un oggetto OpenFileDialog denominato OpenFileDialog1 e un pulsante denominato fileButton. Chiamare i metodi InitializePictureBox e InitializeOpenFileDialog dal costruttore del form oppure dal metodo Load. Nell'esempio è necessario inoltre che l'evento Control.Click del controllo Button e l'evento FileOk di OpenFileDialog siano connessi ai gestori eventi definiti nell'esempio. Quando l'esempio è in esecuzione, visualizzare la finestra di dialogo facendo clic sul pulsante.

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;
}

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

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

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0
Mostra: