My.Application.DoEvents 方法

更新:2007 年 11 月

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

 ' Usage My.Application.DoEvents() ' Declaration Public Sub DoEvents()

備註

My.Application.DoEvents 方法可以讓您的應用程式在執行程式碼的同時,也能夠處理可能所引發的其他事件。My.Application.DoEvents 方法與 DoEvents 方法具有相同的行為。

當您執行 Windows Form 應用程式時會建立新表單,表示會等待處理事件。每一次表單處理事件時 (例如,按鈕點選),便會處理與該事件相關聯的所有程式碼。所有其他事件都會在佇列中等待。當您的程式碼在處理事件時,應用程式不會做出回應。例如,如果將其他視窗拖曳至頂端,不會重新繪製視窗。

如果您在程式碼中呼叫 My.Application.DoEvents,應用程式就可以處理其他事件。例如,如果程式碼將資料加入至迴圈 (Loop) 中的 ListBox,且會在迴圈的每個步驟之後呼叫 My.Application.DoEvents,則將其他視窗拖曳至該視窗上方時,便會重新繪製表單。如果從程式碼中移除 My.Application.DoEvents,則必須等到按鈕的點選事件處理常式完成執行之後,才會重新繪製表單。

您通常會在迴圈中使用此方法處理訊息。

注意事項:

My.Application.DoEvents 方法處理事件的方式和表單的方式不太一樣。使用多執行緒處理,讓表單直接處理事件。如需詳細資訊,請參閱 Visual Basic 中的多執行緒

警告:

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

工作

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

若要

請參閱

忙碌時允許表單回應 UI 輸入

逐步解說:處理事件

範例

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

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

這個程式碼所在的表單應該具有 TextBox1 元件,而這個元件具有 Text 屬性。

需求

命名空間Microsoft.VisualBasic.ApplicationServices

類別WindowsFormsApplicationBase

組件:Visual Basic 執行階段程式庫 (在 Microsoft.VisualBasic.dll 中)

依專案類型的可用性

專案類型

是否可用

Windows 應用程式

類別庫

主控台應用程式

Windows 控制項程式庫

Web 控制項程式庫

Windows 服務

網站

使用權限

下列使用權限可能為必要:

使用權限

描述

FileIOPermission

控制存取檔案和資料夾的功能。關聯的列舉型別:Unrestricted

UIPermission

控制與使用者介面和剪貼簿相關的使用權限。關聯的列舉型別:AllWindows

如需詳細資訊,請參閱程式碼存取安全性要求使用權限

請參閱

參考

My.Application 物件

WindowsFormsApplicationBase.DoEvents

DoEvents