WindowsFormsApplicationBase.DoEvents Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Processa todas as mensagens Windows atualmente na fila de mensagens.
public:
void DoEvents();
public void DoEvents();
member this.DoEvents : unit -> unit
Public Sub DoEvents ()
Exemplos
Este exemplo usa o My.Application.DoEvents método para permitir que a interface do usuário TextBox1 seja atualizada.
Private Sub TestDoEvents()
For i As Integer = 0 To 10000
TextBox1.Text = i.ToString
My.Application.DoEvents()
Next
End Sub
Esse código deve estar em um formulário que tenha um TextBox1 componente com uma Text propriedade.
Comentários
O My.Application.DoEvents método permite que seu aplicativo manipule outros eventos que podem ser gerados durante a execução do código. O My.Application.DoEvents método tem o mesmo comportamento que o DoEvents método.
Quando você executa um aplicativo Windows Forms, ele cria um novo formulário, que aguarda que os eventos sejam tratados. Cada vez que o formulário manipula um evento, como um clique de botão, ele processa todo o código associado a esse evento. Todos os outros eventos esperam na fila. Embora seu código manipule o evento, seu aplicativo não responde. Por exemplo, a janela não será reintada se outra janela for arrastada por cima.
Se você chamar My.Application.DoEvents seu código, seu aplicativo poderá lidar com os outros eventos. Por exemplo, se o código adicionar dados a um ListBox loop e, após cada etapa do loop que ele chama My.Application.DoEvents, seu formulário será reintizado quando outra janela é arrastada sobre ele. Se você remover My.Application.DoEvents do código, o formulário não será reintado até que o manipulador de eventos de clique do botão seja concluído.
Normalmente, você usa esse método em um loop para processar mensagens.
Note
O My.Application.DoEvents método não processa eventos exatamente da mesma maneira que o formulário. Use o multithreading para fazer com que o formulário lide diretamente com os eventos. Para obter mais informações, veja Usando threads e threading.
Caution
Se um método que manipula um evento de interface do usuário chamar o My.Application.DoEvents método, o método poderá ser inserido novamente antes de ser concluído. Isso pode acontecer porque o método My.Application.DoEvents processa mensagens Windows e mensagens Windows podem gerar eventos.
A tabela a seguir lista um exemplo de uma tarefa que envolve o My.Application.DoEvents método.
| Para | Veja |
|---|---|
| Permitir que um formulário responda à entrada da interface do usuário enquanto estiver ocupado | Passo a passo: manipulando eventos |
Disponibilidade por tipo de projeto
| Tipo de projeto | Available |
|---|---|
| Aplicativo do Windows Forms | Yes |
| Biblioteca de Classes | No |
| Aplicativo de console | No |
| Biblioteca de controle do Windows Forms | No |
| Biblioteca de Controles da Web | No |
| Serviço do Windows | No |
| Site da web | No |