为了账号安全,请及时绑定邮箱和手机立即绑定

Cursor.Current与this.Cursor

Cursor.Current与this.Cursor

摇曳的蔷薇 2019-08-26 18:50:11
Cursor.Current与this.Cursor.Net中Cursor.Current和this.Cursor(在哪里this是WinForm)之间有区别吗?我一直使用它this.Cursor并且运气很好但是我最近开始使用CodeRush并且只是在“Wait Cursor”块中嵌入了一些代码而CodeRush使用了该Cursor.Current属性。我已经在互联网和工作中看到其他程序员遇到了一些问题Cursor.Current。它让我想知道这两者是否存在差异。提前致谢。我做了一点测试。我有两个winforms。我单击form1上的一个按钮,将Cursor.Current属性设置为Cursors.WaitCursor,然后显示form2。两种形式的光标都不会改变。它仍然是Cursors.Default(指针)光标。如果我设置this.Cursor到Cursors.WaitCursor在Form1并显示窗体2按钮点击事件,等待光标只显示Form1上,默认光标在预计窗口2。所以,我还是不知道是什么Cursor.Current。
查看完整描述

3 回答

?
达令说

TA贡献1821条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-08-26
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

实际上,如果你想从另一个线程中使用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);
    }}


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 964 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信