将WaitCursor强制到模式窗体的父窗体
本文关键字:窗体 模式 WaitCursor | 更新日期: 2023-09-27 18:27:12
我有一个Form,它在BackgroundWorker工作时显示Loading动画,并在工作完成时关闭。我用以下代码显示它:
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代码行前后插入对Cursor的更改。它仍然没有起作用。为了可重用性,我更希望LoadingPopup无论如何都能管理光标。
我还尝试在子窗体和父窗体上将UseWaitCursor属性设置为true,结果相同。
您尝试过吗:
Mouse.OverrideCursor = Cursors.Wait;