我需要在执行long时在表单中显示“busy”指示符 运行单个命令(ReadXML或WriteXML)。到目前为止,我正在使用
Cursor.Current = Cursors.WaitCursor;
但是我正在寻找一种更加灵活的方式来做到这一点。没有必要 显示完成的百分比,只显示程序的可视参考 工作(如ProgressBar选框样式 - 不适用于.NET CF - )。
我正在使用C#/ WinForms / .NET CF 2.0
TIA
答案 0 :(得分:3)
通常需要显示进度。但是你做需要能够衡量进展才能使其变得有意义。猜测你的意思是DataSet.ReadXml(),该类没有任何类型的ProgressChanged事件,你可以使用它来让用户知道这个工作有多远。你也不能预先估计需要多长时间。执行时间大致与.xml文件的大小成比例,但精确比例无法准确猜测。
你所能做的就是让用户知道“我很忙,不要期待任何事情”。在过去的20年里,沙漏光标一直是这样做的标准方式。你可以通过动画获得更好的体验。这就是在选框模式下的ProgressBar的真正含义。它根本不能帮助用户。虽然它添加了一些信息:“操作系统没有崩溃”。 20年前有用。
您可以创建自己的动画。动画GIF是否适用于CF?如果没有,您可以自己翻转位图。但是,你需要承担额外的负担,你必须保持动画的动画效果。这要求您在另一个线程上运行ReadXml()调用,以便UI线程可用于保持图像更新。 CF中没有BackgroundWorker,你必须自己旋转那个帖子。