2010-07-28 18 views
1

我需要在运行单个命令(ReadXML或WriteXML)的长 时在窗体中显示“繁忙”指示符。到目前为止,我正在使用如何在长时间运行的C#.NET CF 2.0进程中显示繁忙的指示符?

Cursor.Current = Cursors.WaitCursor; 

但我正在寻找更多adqeuate的方式来做到这一点。没有必要 显示已完成的百分比,只有一个可视化参考,该程序是 工作(如ProgressBar字幕样式 - 不可用于.NET CF-)。

我使用C#/的WinForms/.NET CF 2.0

TIA

+1

“更充足”是什么意思?标准的WaitCursor,看起来像你所要求的 - 提供了一个可视化的参考,该应用程序正在做一些没有任何特定进度的指标。这是不是你想要的? – ctacke 2010-07-28 14:04:00

+0

@ctacke:我想有较明显的指标,因为用户通常是“在球场上”的工作,暴露在雨水和阳光直射,可以限制屏幕可视性 – PabloG 2010-07-28 15:54:43

+0

我将与克里斯同意。使用默认的WaitCursor。它的系统标准。偏离这可能会导致期待等待光标的用户感到困惑,但看到不同的东西。 – PaulG 2010-07-30 21:42:32

回答

3

显示进度是常常希望的。但你需要能够衡量进展,使其有意义。猜测你的意思是DataSet.ReadXml(),那个类没有任何类型的ProgressChanged事件,你可以使用这个事件让用户知道工作进展到什么程度。你也不能预测它将要花多长时间。执行时间大致与.xml文件的大小成正比,但不可能准确猜测比例。

你所能做的就是让用户知道“我很忙,不期待任何事情”。在过去的20年中,沙漏光标一直是这样做的标准方式。你可以用动画获得更多的乐趣。这就是在字幕模式下的ProgressBar。它根本没有帮助用户。尽管它增加了一点信息:“操作系统没有崩溃”。 20年前有用。

您可以创建自己的动画。动画GIF是否适用于CF?如果没有,你可以自己翻动位图。然而,你承担额外的负担,你必须保持动画动画。这就要求您在另一个线程上运行ReadXml()调用,以便UI线程可以保持图像更新。在CF中没有BackgroundWorker,你必须自己编写这个线程。

+0

不,动画GIF不起作用 - 位图翻转是您唯一的选择。 – ctacke 2010-07-28 14:45:12

相关问题