DoEvents语句
新建一个窗口,增加一个标签和一个按钮,按钮的Click事件设为:
e.Form.Controls(
"Label1").Text = "正在增加行,请稍后..."
CurrentTable.AddNew(10000)
e.Form.Controls("Label1").Text = "已经完成."
打开窗口单击按钮,按道理在增加行的时候,标签应该显示“正在增加行,请稍后...”,可实际上标签只是在增加行结束的时候,显示“已经完成.”。这是为什么呢?这是因为Windows是多任务的,绘制控件属于优先级别较低的任务,直到我们执行完所有的代码,Windows才会去绘制控件,从而出现上述异常。
有什么办法让绘制控件的代码即刻生效呢?有,我们只需在代码中间插入一行:
Application.DoEvents
即刻暂停代码的执行,重新绘制控件后,继续执行代码。
所以我们原来的代码应该改为:
e.Form.Controls(
"Label1").Text = "正在增加行,请稍后..."
Application.DoEvents()
CurrentTable.AddNew(10000)
e.Form.Controls("Label1").Text = "已经完成."