- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在按钮点击中得到了代码,如下所示:
try
{
Cursor = Cursors.WaitCursor;
GenerateReports();
}
finally
{
Cursor = Cursors.Default;
GC.Collect();
GenPacketBtn.Enabled = true;
}
除了在 finally block 中,别无其他地方将光标设置回默认状态,但它确实“累了”并出于某种原因恢复到默认状态。为什么会这样,我如何确保它不会停止“等待”,直到所有进程的老大哥 (GenerateReports()) 完成?
最佳答案
改用 Control.UseWaitCursor = true
,这不会超时。
如果正在执行昂贵的操作,则 Windows 将接管并将 Cursor.WaitCursor
更改为它认为必要的任何内容。因此,对于 Cursor.WaitCursor,它要么是由于超时(但对此并不完全确定),要么是因为 Windows 只是声称拥有游标而不考虑其先前的状态。我们也遇到过类似的情况,在执行一项涉及称为第 3 方 PDF 转换器的昂贵任务时,光标没有按预期运行,但我们没有对问题的性质进行更多调查,因为这不是优先事项。
经过一番阅读,发现设置沙漏光标比看起来要复杂一些:
.net WaitCursor: how hard can it be to show an hourglass?
另请注意:您应该使用 Cursor.Current = Cursors.WaitCursor
,因为这会强制光标立即变为忙碌状态,更多详细信息:https://stackoverflow.com/a/302865/1463733
关于c# - 为什么沙漏 (WaitCursor) 会停止旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34187800/
我有一个需要几秒钟才能最终显示的表单。此表单通过以下方式调用: using (ResultsForm frm = new ResultsForm()) { this.Visible = fal
我有一个表单,它在 BackgroundWorker 工作时显示加载动画,并在工作完成时关闭。我用以下代码展示它: using (BackgroundWorker bw = new Backgroun
我在按钮点击中得到了代码,如下所示: try { Cursor = Cursors.WaitCursor; GenerateReports(); } finally { Cur
在 Visual Studio 2010 Express (C#) 中工作: 一旦我在下拉菜单中将光标切换到“WaitCursor”,我就无法将其更改为其他任何内容。这对我来说似乎是一个错误。其他人可
我试过以下方法 this.Cursor = Cursors.WaitCursor; //OR this.UseWaitCursor = true; //OR Application.UseWaitCu
考虑以下带有文本框和网络浏览器控件的简单 WinForms 表单。每当文本框内容发生变化时,文本就会被推送到浏览器: public class MainForm : Form { public
QMessageBox::information(this, "hello", "hello"); QApplication::setOverrideCursor(Qt::WaitCursor); Q
我在 C# .NET CF 应用程序中运行了一个有点冗长的过程,然后我想显示沙漏鼠标指针。我使用的代码是: Cursor.Current = Cursors.WaitCursor; Cursor.Sh
我是一名优秀的程序员,十分优秀!