将WaitCursor强制应用于模态窗体的父窗体

4
我有一个表单,在后台线程执行工作时显示加载动画,工作完成后关闭。以下是显示它的代码:
using (BackgroundWorker bw = new BackgroundWorker())
using (LoadingPopup loadingPopup = new LoadingPopup(bw))
{
    bw.DoWork += delegate
    {
        DoMyWork();
    };

    loadingPopup.ShowDialog(this);
}

我的LoadingPopup表单在OnShown中启动后台工作器,并在后台工作器完成后关闭自身。
如果用户悬停在父表单或子表单的任何部分上,我希望显示等待光标。
我尝试在LoadingPopup的OnShown事件中添加代码来设置Parent.Cursor、Owner.Cursor、this.Cursor和Cursor.Current为WaitCursor,然后在OnClosed事件中将它们设置回Cursor.Default。但是当我悬停在父表单上时,我总是得到一个默认光标。
有没有办法强制设置这个光标,甚至设置一个应用程序范围内的光标?
编辑:我还尝试在父表单的ShowDialog代码行之前和之后插入对光标的更改。它仍然不起作用。无论如何,我更希望LoadingPopup管理光标以实现可重用性。
我还尝试在子表单和父表单上将UseWaitCursor属性设置为true,结果相同。
1个回答

0
你尝试过吗:

Mouse.OverrideCursor = Cursors.Wait;

这是使用Windows Forms,而不是WPF。 - Trevor Elliott
是的,抱歉。我忘记那是仅限于WPF的了。 - Matt Burland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接