WindowsFormsApplicationBase.DoEvents 方法

定义

处理当前在消息队列中的所有 Windows 消息。

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

示例

此示例使用 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

此代码应采用具有 具有 Text 属性的TextBox1组件的形式。

注解

方法 My.Application.DoEvents 允许应用程序处理在代码运行时可能引发的其他事件。 方法 My.Application.DoEvents 的行为与 方法相同 DoEvents

运行 Windows 窗体 应用程序时,它会创建一个新窗体,然后等待处理事件。 每次窗体处理事件(如按钮单击)时,都会处理与该事件关联的所有代码。 所有其他事件都在队列中等待。 当代码处理事件时,应用程序不会响应。 例如,如果将另一个窗口拖到顶部,则窗口不会重新绘制。

如果在代码中调用 My.Application.DoEvents ,应用程序可以处理其他事件。 例如,如果代码将数据添加到 ListBox 循环中的 ,并在循环的每个步骤之后调用 My.Application.DoEvents,则当另一个窗口拖动到该循环上时,窗体将重新绘制。 如果从代码中删除 My.Application.DoEvents ,则在按钮的单击事件处理程序执行完毕之前,窗体不会重新绘制。

通常,在循环中使用此方法来处理消息。

备注

My.Application.DoEvents 方法不会按照与窗体相同的方式来处理事件。 使用多线程使窗体直接处理事件。 有关详细信息,请参阅使用线程和线程处理

注意

如果处理用户界面 (UI) 事件的方法调用 My.Application.DoEvents 该方法,则该方法可能会在完成之前重新输入。 之所以发生这种情况, My.Application.DoEvents 是因为 方法处理 Windows 消息,而 Windows 消息可能会引发事件。

下表列出了涉及 My.Application.DoEvents 方法的任务示例。

功能 查看
允许窗体在忙碌时响应 UI 输入 演练:处理事件

可用性(按项目类型)

项目类型 可用
Windows 窗体应用程序
类库
控制台应用程序
Windows 窗体控件库
Web 控件库
Windows 服务
网站

适用于

另请参阅