我们有一个Windows Mobile6项目,已经启动并运行了两年。
当开发一个新版本时,光标的变化已经停止了我们的一些设备上的工作。
最有问题的地方是当改变表单的时候。代码基本上是:
Cursor.Current = Cursors.WaitCursor;
ShowForm(FormSettings);
FormSettings.ReInit();
Cursor.Current = Cursors.Default;WaitCursor将出现,但永远不会消失。
在调试时,我可以清楚地看到所有代码行都被执行了,在最后一条语句之后,我可以在"watch“或"Immediate”窗口中检查Cursor.Current的值,并看到它明确地设置为Cursors.Default (或者更确切地说,是Cursor.Default的值-带“箭头”的东西)。
更多信息:
如果我在FormSettings.ReInit()的末尾添加一个MessageBox.Show(""),光标将消失/变成Cursors.Default。
发布于 2012-04-27 21:08:52
此问题的解决方案是处理窗体代码中的所有光标更改。
即使在另一种方法中,也不确定为什么有一半的方法可以工作,但现在它都工作了。
发布于 2012-01-18 01:58:46
当您的某个例程中存在未处理的异常时,就会发生这种情况。
如果未引发异常,则该异常将在线程化例程、LINQ查询或窗体的InitializeComponent()节中发生。
要找回您的Cursor,请执行以下操作:
Cursor.Current = Cursors.WaitCursor;
try {
ShowForm(FormSettings);
FormSettings.ReInit();
} finally {
Cursor.Current = Cursors.Default;
}但是,您在ShowForm或ReInit()中的某个地方遇到了问题。您应该转到这些例程并在其中添加一个try...catch,直到您对其进行排序。
https://stackoverflow.com/questions/8892277
复制相似问题