WindowsFormsApplicationBase.DoEvents Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Processa todas as mensagens do 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 de utilizador de TextBox1 seja atualizada.
Private Sub TestDoEvents()
For i As Integer = 0 To 10000
TextBox1.Text = i.ToString
My.Application.DoEvents()
Next
End Sub
Este código deve estar numa forma que tenha um TextBox1 componente com uma Text propriedade.
Observações
O My.Application.DoEvents método permite que a sua aplicação gere outros eventos que possam ser gerados enquanto o código é executado. O My.Application.DoEvents método tem o mesmo comportamento que o DoEvents método.
Quando executa uma aplicação Windows Forms, ela cria um novo formulário, que depois espera que os eventos sejam tratados. Cada vez que o formulário processa um evento, como um clique num botão, processa todo o código associado a esse evento. Todos os outros eventos aguardam na fila. Enquanto o seu código gere o evento, a sua aplicação não responde. Por exemplo, a janela não repinta se outra janela for arrastada por cima.
Se ligares My.Application.DoEvents ao teu código, a tua aplicação pode tratar dos outros eventos. Por exemplo, se o teu código adicionar dados a ListBox um in a loop, e após cada passo do loop que chama My.Application.DoEvents, o teu formulário repinta quando outra janela é arrastada por cima. Se remover My.Application.DoEvents do seu código, o formulário não será repintado até que o handler de eventos de clique do botão termine de ser executado.
Normalmente, utiliza-se este método num ciclo para processar mensagens.
Note
O My.Application.DoEvents método não processa eventos exatamente da mesma maneira que o formulário. Use multithreading para fazer com que o formulário trate diretamente dos eventos. Para obter mais informações, consulte Usando processos e encadeamento de processos.
Atenção
Se um método que gere um evento de interface de utilizador (UI) chamar o My.Application.DoEvents método, este pode ser reintroduzido antes de terminar. Isto pode acontecer porque o método My.Application.DoEvents processa Windows mensagens, e Windows mensagens podem gerar eventos.
A tabela seguinte apresenta um exemplo de uma tarefa envolvendo o My.Application.DoEvents método.
| Para | Veja |
|---|---|
| Permitir que um formulário responda à entrada da interface enquanto está ocupado | Passo a passo: Manipulando eventos |
Disponibilidade por tipo de projeto
| Tipo de Projeto | Available |
|---|---|
| Aplicação Windows Forms | Sim |
| Biblioteca de Classes | No |
| Aplicativo de console | No |
| Biblioteca de Controlo Windows Forms | No |
| Biblioteca de controle da Web | No |
| Serviço Windows | No |
| Web site | No |