WindowsFormsApplicationBase.DoEvents Método

Definición

Procesa todos los mensajes de Windows que hay actualmente en la cola de mensajes.Processes all Windows messages currently in the message queue.

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

Ejemplos

En este ejemplo se usa el método My.Application.DoEvents para permitir que la interfaz de usuario de TextBox1 se actualice.This example uses the My.Application.DoEvents method to allow the UI for TextBox1 to update.

Private Sub TestDoEvents()
    For i As Integer = 0 To 10000
        TextBox1.Text = i.ToString
        My.Application.DoEvents()
    Next
End Sub

Este código debería estar en un formulario que tenga un componente de TextBox1 con una propiedad Text.This code should be in a form that has a TextBox1 component with a Text property.

Comentarios

El método My.Application.DoEvents permite que la aplicación controle otros eventos que podrían generarse mientras se ejecuta el código.The My.Application.DoEvents method allows your application to handle other events that might be raised while you code runs. El método My.Application.DoEvents tiene el mismo comportamiento que el método DoEvents.The My.Application.DoEvents method has the same behavior as the DoEvents method.

Al ejecutar una aplicación Windows Forms, se crea un nuevo formulario que, a continuación, espera a que se controlen los eventos.When you run a Windows Forms application, it creates a new form, which then waits for events to be handled. Cada vez que el formulario controla un evento, como un clic de botón, procesa todo el código asociado a ese evento.Each time the form handles an event, such as a button click, it processes all the code associated with that event. Todos los demás eventos esperan en la cola.All other events wait in the queue. Mientras el código controla el evento, la aplicación no responde.While your code handles the event, your application does not respond. Por ejemplo, la ventana no vuelve a dibujarse si se arrastra otra ventana encima.For example, the window does not repaint if another window is dragged on top.

Si llama a My.Application.DoEvents en el código, la aplicación puede controlar los demás eventos.If you call My.Application.DoEvents in your code, your application can handle the other events. Por ejemplo, si el código agrega datos a un ListBox en un bucle y después de cada paso del bucle al que llama My.Application.DoEvents, el formulario se vuelve a dibujar cuando se arrastra otra ventana sobre él.For example, if your code adds data to a ListBox in a loop, and after each step of the loop it calls My.Application.DoEvents, your form repaints when another window is dragged over it. Si quita My.Application.DoEvents del código, el formulario no volverá a dibujarse hasta que haya finalizado la ejecución del controlador de eventos Click del botón.If you remove My.Application.DoEvents from your code, your form will not repaint until the click event handler of the button is finished executing.

Normalmente, este método se utiliza en un bucle para procesar los mensajes.Typically, you use this method in a loop to process messages.

Nota

El método My.Application.DoEvents no procesa los eventos exactamente del mismo modo que el formulario.The My.Application.DoEvents method does not process events in exactly the same way as the form does. Utilice multithreading para que el formulario controle directamente los eventos.Use multithreading to make the form directly handle the events. Para obtener más información, vea aplicaciones multiproceso.For more information, see Multithreaded Applications.

Precaución

Si un método que controla un evento de interfaz de usuario (IU) llama al método My.Application.DoEvents, es posible que se vuelva a escribir el método antes de que finalice.If a method that handles a user interface (UI) event calls the My.Application.DoEvents method, the method might be re-entered before it finishes. Esto puede ocurrir porque el método My.Application.DoEvents procesa los mensajes de Windows y los mensajes de Windows pueden generar eventos.This can happen because the My.Application.DoEvents method processes Windows messages, and Windows messages can raise events.

En la tabla siguiente se muestra un ejemplo de una tarea que implica el método My.Application.DoEvents.The following table lists an example of a task involving the My.Application.DoEvents method.

ATo VeaSee
Permitir que un formulario responda a la entrada de la interfaz de usuario mientras está ocupadoAllow a form to respond to UI input while busy Tutorial: Controlar eventosWalkthrough: Handling Events

Disponibilidad por tipo de proyectoAvailability by Project Type

Tipo de proyectoProject type DisponibleAvailable
Aplicación de Windows FormsWindows Forms Application Yes
Biblioteca de clasesClass Library NoNo
Aplicación de consolaConsole Application NoNo
Biblioteca de controles de Windows FormsWindows Forms Control Library NoNo
Biblioteca de controles WebWeb Control Library NoNo
Servicio de WindowsWindows Service NoNo
Sitio webWeb Site NoNo

Se aplica a

Consulte también: