WindowsFormsApplicationBase.DoEvents 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
處理目前在訊息隊列中的所有 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 ,表單不會重新繪製,直到按鈕的點擊事件處理器執行完成。
通常你會用這種方法在迴圈中處理訊息。
Note
My.Application.DoEvents方法不會以與表單完全相同的方式處理事件。 使用多執行緒讓表單直接處理事件。 更多資訊請參閱線程和多線程的使用。
注意事項
如果一個處理使用者介面(UI)事件的方法呼叫該 My.Application.DoEvents 方法,該方法可能會在事件結束前被重新輸入。 這可能是因為 My.Application.DoEvents 方法處理Windows訊息,而Windows訊息可能會引發事件。
下表列出一個涉及此 My.Application.DoEvents 方法的任務範例。
| 至 | 看! |
|---|---|
| 讓表單在忙碌時回應 UI 輸入 | 逐步講解:事件處理 |
依專案類型提供可用性
| 專案類型 | Available |
|---|---|
| Windows 表單應用程式 | Yes |
| 類別庫 | No |
| 主控台應用程式 | No |
| Windows 表單控制函式庫 | No |
| Web 控制庫 | No |
| Windows 服務 | No |
| 網站 | No |