WindowsFormsApplicationBase.DoEvents 方法

定義

處理目前在訊息佇列中的所有 Windows 訊息。

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

範例

這個範例會 My.Application.DoEvents 使用 方法來允許UI TextBox1 更新。

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

此程式代碼應該採用具有 TextBox1 屬性之元件的 Text 表單。

備註

方法 My.Application.DoEvents 可讓應用程式處理程式碼執行時可能會引發的其他事件。 方法 My.Application.DoEvents 的行為 DoEvents 與方法相同。

當您執行 Windows Forms 應用程式時,它會建立新的窗體,然後等候處理事件。 每當表單機處理事件時,例如按下按鈕,就會處理與該事件相關聯的所有程式代碼。 所有其他事件都會在佇列中等候。 雖然您的程式代碼會處理事件,但您的應用程式不會回應。 例如,如果另一個視窗拖曳在頂端,則視窗不會重新繪製。

如果您在程式代碼中呼叫 My.Application.DoEvents ,您的應用程式可以處理其他事件。 例如,如果您的程式代碼在迴圈中將數據新增至 ListBox ,並在其呼叫 My.Application.DoEvents的每個迴圈步驟之後,您的窗體會在拖曳另一個視窗時重新繪製。 如果您從程式代碼中移除 My.Application.DoEvents ,在按鈕的 click 事件處理程式執行完成之前,您的表單將不會重新繪製。

一般而言,您會在迴圈中使用此方法來處理訊息。

注意

My.Application.DoEvents 方法不會使用與表單相同的方式來處理事件。 使用多線程讓窗體直接處理事件。 如需詳細資訊,請參閱使用執行緒和執行緒處理

警告

如果處理使用者介面的方法 (UI) 事件呼叫 My.Application.DoEvents 方法,方法可能會在完成之前重新輸入。 My.Application.DoEvents這是因為方法會處理 Windows 訊息,而 Windows 訊息可能會引發事件。

下表列出涉及 My.Application.DoEvents 方法的工作範例。

收件者 請參閱
允許表單在忙碌時回應UI輸入 逐步解說:處理事件

依專案類型的可用性

專案類型 可用
Windows Forms 應用程式
類別庫
主控台應用程式
Windows Form 控制項程式庫
Web 控制項程式庫
Windows 服務
網站

適用於

另請參閱