我需要显示某种动画,而windows form应用程序正在处理数据,直到它给出输出。处理完成后,动画将停止。在基于Web的应用程序的Dev express中有很棒的工具。但是我们在Windows窗体应用程序中有类似的东西吗?
由于
这是一个调用存储过程的窗体。 SQL查询大约需要10分钟,我需要运行一些动画告诉系统仍在处理。由于我无法分配步骤,因此进度条不会工作。
答案 0 :(得分:0)
您将需要查看BackgroundWorker class,它将允许您在另一个线程上启动代码,并处理工作线程和UI线程之间的通信,以便您可以适当地更新UI
答案 1 :(得分:0)
我建议将工作委托给BackgroundWorker并显示进度条。由于您无法分配步骤,您可以使用该栏来反映它应该花费的时间。
如果您希望使进度条更准确,而不是根据开发计算机上的测试任意决定它需要10分钟,您可以记录事务所需的时间并使用事务最近所花费的时间。决定你的进度条需要多长时间才能填满。
您还可以委派给BackgroundWorker,并在前台显示带有计数器或其他内容的消息 - “正在查询。已过去的时间:2分钟。估计完成时间:10分钟。”然后还有一个取消按钮。这样的事情。
只是不同的可能性。没有什么是好的,但是你缺乏对流程的内部访问限制了你的选择。
<编辑>哦,看起来你已经得到了答案。呃,好吧! < / edit>
答案 2 :(得分:0)
我建议您查看MSDN中的marque样式进度条。它只是在你的手术中来回走动。您的SQL查询将没有callacks或任何其他内容,因此这将允许您只是指示您的应用程序正在“正常工作”。
http://msdn.microsoft.com/en-us/library/bb760816%28VS.85%29.aspx
通过创建进度条控件 使用PBS_MARQUEE样式,你可以 以显示的方式为其制作动画 活动,但没有说明什么 任务的比例完成。 突出的部分进展 酒吧沿着长度反复移动 酒吧你可以开始和停止 动画,并控制其速度 发送PBM_SETMARQUEE消息。 选框进度条没有 范围或位置。
答案 3 :(得分:0)
我在一个单独的表单中使用ProgressBar执行此类事情。您可以使用计时器每隔10秒钟设置一次滴答,然后根据需要将ProgressBar重置为零并继续滚动。