Cursor.Current与this.Cursor

Cursor.Current与this.Cursor

.Net中Cursor.Currentthis.Cursor(在哪里this是WinForm)之间有区别吗?我一直使用它this.Cursor并且运气很好但是我最近开始使用CodeRush并且只是在“Wait Cursor”块中嵌入了一些代码而CodeRush使用了该Cursor.Current属性。我已经在互联网和工作中看到其他程序员遇到了一些问题Cursor.Current。它让我想知道这两者是否存在差异。提前致谢。

我做了一点测试。我有两个winforms。我单击form1上的一个按钮,将Cursor.Current属性设置为Cursors.WaitCursor,然后显示form2。两种形式的光标都不会改变。它仍然是Cursors.Default(指针)光标。

如果我设置this.CursorCursors.WaitCursor在Form1并显示窗体2按钮点击事件,等待光标只显示Form1上,默认光标在预计窗口2。所以,我还是不知道是什么Cursor.Current


摇曳的蔷薇
浏览 967回答 3
3回答

达令说

我相信Cursor.Current是当前正在使用的鼠标光标(无论它在屏幕上的什么位置),而this.Cursor是当鼠标经过你的窗口时它将被设置的光标。

眼眸繁星

实际上,如果你想从另一个线程中使用HourGlass,它会回复跨线程异常,因为你试图从最初创建的表单以外的不同线程访问f.Handle。使用GetForegroundWindow()而不是user32.dll。[DllImport("user32.dll")]private static extern IntPtr GetForegroundWindow();然后public static bool Enabled{     get    {         return Application.UseWaitCursor;     }     set     {         if (value == Application.UseWaitCursor)         {             return;         }         Application.UseWaitCursor = value;         var handle = GetForegroundWindow();         SendMessage(handle, 0x20, handle, (IntPtr)1);     }}
打开App,查看更多内容
随时随地看视频慕课网APP