winforms 将WaitCursor强制设置为模式窗体的父窗体

hmmo2u0o  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(108)

我有一个窗体,它在BackgroundWorker工作时显示加载动画,并在工作完成时关闭。我用下面的代码展示它:

using (BackgroundWorker bw = new BackgroundWorker())
using (LoadingPopup loadingPopup = new LoadingPopup(bw))
{
    bw.DoWork += delegate
    {
        DoMyWork();
    };

    loadingPopup.ShowDialog(this);
}

我的LoadingPopup表单在OnShown中启动后台工作程序,当后台工作程序完成时,它会自行关闭。
如果用户将鼠标悬停在父窗体或子窗体的任何部分上,我希望显示WaitCursor。
我尝试在LoadingPopup OnShown事件中添加代码,将Parent.Cursor、Owner.Cursor、this.Cursor和Cursor.Current设置为WaitCursor,然后在OnClosed事件中将它们设置回Cursor.Default。但是当我将鼠标悬停在父窗体上时,我总是得到一个Default光标。
有什么方法可以强制这个游标,甚至设置一个应用程序范围的游标?
编辑:我还尝试在父级中ShowDialog代码行的前后插入对游标的更改。还是不行。我更喜欢LoadingPopup管理光标无论如何可重用性。
我还尝试在子窗体和父窗体上都将DataWaitCursor属性设置为true,结果相同。

ilmyapht

ilmyapht1#

您是否尝试过:

Mouse.OverrideCursor = Cursors.Wait;

相关问题