在Windows Forms(WinForm)应用开发中,当执行耗时的操作如数据库查询时,为了提供良好的用户体验,通常会使用进度条来显示查询的状态。这里提到的"查询时出现的进度条"是关于如何在WinForm应用程序中实现这样一个功能的具体步骤。 1. **声明全局变量**: 在代码中,首先声明了全局的`DataSet`变量`dsResult`用于存储查询结果,以及两个全局变量`changeType`和`state`,它们用于传递查询条件。`changeType`根据用户选择的区域类型("片区内"或"片区外"),`state`则根据状态选项("请选择"、"成功转出学员"等)来确定查询条件。 2. **查询方法**: 当用户点击搜索按钮(`btnSearch_Click`事件触发)时,调用`SearchInfoByProcess`方法。在这个方法里,首先根据用户界面(UI)上的选择设置查询参数,然后创建并显示一个`ProgressForm`,这是一个专门用来显示进度的窗体。 3. **使用BackgroundWorker**: `BackgroundWorker`组件是.NET Framework中处理异步操作的一个重要工具,它可以避免界面线程被长时间占用导致程序无响应。在此案例中,创建了一个`BackgroundWorker`实例,设置了其`WorkerReportsProgress`和`WorkerSupportsCancellation`属性为`true`,意味着它可以报告进度并支持取消操作。 4. **事件处理**: - `DoWork`事件处理函数`worker_DoWork`中,执行实际的查询操作,即`DoSearch()`方法,这个方法应包含与数据库交互的代码,如SQL查询。 - `ProgressChanged`事件可以更新进度条,但在这个例子中没有具体实现。 - `RunWorkerCompleted`事件在后台任务完成后触发,可以执行清理或更新UI的操作,例如关闭进度窗体,显示查询结果等。 5. **运行后台任务**: 调用`worker.RunWorkerAsync()`启动异步操作,这样查询工作将在后台进行,而不会阻塞用户界面。 6. **进度更新**: 虽然`worker_ProgressChanged`方法留空,但在实际应用中,这通常是更新进度条的地方。你需要计算查询过程中的进度,通过`worker.ReportProgress(int)`方法将进度值传递给`ProgressChanged`事件,进而更新进度条的显示。 7. **用户界面反馈**: `ProgressForm`应该有一个进度条控件(`ProgressBar`),并且在`ProgressChanged`事件处理函数中,根据接收到的进度值更新进度条。同时,`OnProgressChanged`和`OnProcessCompleted`方法可以用来更新`ProgressForm`的其他部分,比如显示消息或关闭窗体。 总结来说,这个实现涉及了WinForm中异步编程的基础知识,包括使用`BackgroundWorker`组件来执行长时间运行的任务,同时通过`ProgressChanged`事件实时更新进度条,以提供更好的用户体验。此外,它还展示了如何根据用户界面的输入动态调整查询条件,以及如何在查询完成后处理结果。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083646.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![text/x-c++](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- rochsoft2012-05-24只是个work文档,没有实例程序
- raymondfang2012-12-14虽然只是一个文档介绍 还是感谢分享
- mybabecloud2013-06-14只有work文档,不是程序啊
- hallacey11022012-06-07没有实例程序,不知所云
- daerter2014-04-13如果有实例程序就好了。
![avatar](https://profile-avatar.csdnimg.cn/785839cdb6d4428aaf126f43ad34cb48_lunar_wong.jpg!1)
- 粉丝: 14
- 资源: 10
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- C# winform置托盘图标并闪烁演示源码.zip
- 打包和分发Rust工具.pdf
- SQL中的CREATE LOGFILE GROUP 语句.pdf
- C语言-leetcode题解之第172题阶乘后的零.zip
- C语言-leetcode题解之第171题Excel列表序号.zip
- C语言-leetcode题解之第169题多数元素.zip
- ocr-图像识别资源ocr-图像识别资源
- 图像识别:基于Resnet50 + VGG16模型融合的人体细胞癌症分类模型实现-图像识别资源
- C语言-leetcode题解之第168题Excel列表名称.zip
- C语言-leetcode题解之第167题两数之和II-输入有序数组.zip
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)