在应用程序搜索数据库时添加旋转轮

时间:2010-11-30 18:39:44

标签: vb.net spinner

我有一个应用程序在数据库中搜索一些信息。

由于数据库非常大,有时需要花费大量时间才能将应用程序返回到界面。

我想添加某种旋转轮来通知用户应用程序仍在搜索数据库并且没有冻结。返回结果后,轮子应该消失。

知道如何做到这一点,还是有一个很好的教程解释如何做到这一点?

3 个答案:

答案 0 :(得分:5)

您是否考虑过将鼠标指针更改为沙漏,因为实现起来非常简单:

Me.Cursor = Cursors.WaitCursor 

...Do your DB calls here...

Me.Cursor = Cursors.Default

然而,我同意显示“旋转轮”可能更加用户友好,并且肯定更加明显。所以,首先得到一个适合您需要的动画GIF。然后创建一个包含图像的图片框的表单。

一旦你有了这个表格,你就可以向用户展示表格,并在后台进行数据库工作,一旦完成,就关闭表格。

另一种选择是使用滚动进度条,所以当它达到100%时,它会再次循环并继续运行直到你关闭它。

修改

我忘了提到的一件事是你必须处理异常情况。假设您将光标设置为wait,然后发生错误。该异常可能会绕过重置所有内容的代码。这会给用户留下更改的光标,无法更改它。

当我做了这种事情时,我通常会创建一个一次性的WaitCursor类,然后使用这样的东西:

Using myWaitCursor As WaitCursor = New WaitCursor
...do something...
End Using

在WaitCursor类的Dispose中,将光标设置回默认值。如果您沿着使用带有图像或进度条的表单的路线走下去也是如此。

答案 1 :(得分:3)

找到这样一个微调器的动画gif,比如this one。将它放在PictureBox中,在启动作业时将其Visible属性设置为True。请注意,您必须在工作线程中运行查询以保持动画活动并响应用户界面。 BackgroundWorker类很适合。

答案 2 :(得分:0)

您可以使用环境默认等待光标,对于Vista / 7,它是一个外部旋转的圆圈,或XP翻滚沙漏。

您可以在BackgroundWorker上启动数据库访问并显示动画控件,例如选取框进度条,或者您可以显示自定义动画以显示忙碌状态。