WindowsFormsApplicationBase.DoEvents 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
处理当前在消息队列中的所有 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 服务 | 否 |
网站 | 否 |