C# 消息(Application.DoEvents())
2013-10-27 21:42
357 查看
C# 消息(Application.DoEvents())
处理当前在消息队列中的所有 Windows 消息。
public static void DoEvents();
如果在代码中调用 DoEvents,则您的应用程序可以处理其他事件。例如,如果您有向
ListBox 添加数据的窗体,并将 DoEvents 添加到代码中,那么当将另一窗口拖到您的窗体上时,该窗体将重新绘制。如果从代码中移除
DoEvents,那么在按钮的单击事件处理程序执行结束以前,您的窗体不会重新绘制。
通常,您在循环中使用该方法来处理消息。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void button1_Click(object sender, System.EventArgs e)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int i=0;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while(i<10)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Thread.Sleep(1000);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
textBox1.Text += i.ToString() + "\r\n";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Application.DoEvents();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
i++;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
如果去掉Application.DoEvents() textBox1不会立刻重绘,要等到循环完成才重绘,加了之后可以立刻重绘.
处理当前在消息队列中的所有 Windows 消息。
public static void DoEvents();
备注
当运行 Windows 窗体时,它将创建新窗体,然后该窗体等待处理事件。该窗体在每次处理事件时,均将处理与该事件关联的所有代码。所有其他事件在队列中等待。在代码处理事件时,应用程序并不响应。例如,当将另一窗口拖到该窗口前面时,该窗口不重新绘制。如果在代码中调用 DoEvents,则您的应用程序可以处理其他事件。例如,如果您有向
ListBox 添加数据的窗体,并将 DoEvents 添加到代码中,那么当将另一窗口拖到您的窗体上时,该窗体将重新绘制。如果从代码中移除
DoEvents,那么在按钮的单击事件处理程序执行结束以前,您的窗体不会重新绘制。
通常,您在循环中使用该方法来处理消息。
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
private void button1_Click(object sender, System.EventArgs e)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
int i=0;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
while(i<10)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Thread.Sleep(1000);
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
textBox1.Text += i.ToString() + "\r\n";
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Application.DoEvents();
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
i++;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
如果去掉Application.DoEvents() textBox1不会立刻重绘,要等到循环完成才重绘,加了之后可以立刻重绘.
相关文章推荐
- Android_ActionBar
- iOS7多任务的增强,应用程序的后台执行模型
- UIApplicationMain
- android开发中,webview的js与Native code交互
- Android GridView 分页加载数据
- android组件之ScrollView
- ListView分页显示
- iOS7用户界面的改变
- 【初学】iOS学习笔记-字符串本地化实现
- Android倒计时+警报[最简单的实现方式]
- 走进小作坊(三)----《小经验》与读js技术书、写小程序
- 开始学android--LinearLayout布局
- onCreate方法中调用PopupWindow的错误:android.view.WindowManager$BadTo
- 关于初次接触Android开发的小心得
- Android软件包静默安装小应用
- 关于LayoutParams 分类: H1_ANDROID 2013-10-27 20:34 776人阅读 评论(0) 收藏
- 关于android程序自动更新功能的实现,如何去除安装提示
- Android应用开发笔记(12):Android应用的自动升级、更新模块的实现
- Android应用自动更新功能的代码实现
- Android TableLayout中的使用说明