0

我们注意到一些奇怪的 Cursor 行为,我们怀疑这是我们的 Cursor canging 方法之一的结果。只是有时,我们的电脑一直显示 SizeAll 光标。无处不在,在每个应用程序中。现在,我们从不在代码中的任何地方使用 SizeAll 游标,但我们可以在执行以下代码时“解开”游标。

我们怀疑问题出在静态光标属性上,但无法识别错误。

代码有什么问题?

不过还是谢谢大家。

static class GlobalVars
{

    private static Cursor handOpenCursor;

    public static Cursor HandOpenCursor
    {

        get 
        {
            if (handOpenCursor == null)
            {
                string cursorPath = System.IO.Path.Combine( ApplicatiePaths.ImagePath, @"hand_open.cur" );
                handOpenCursor = new Cursor(cursorPath);
                return handOpenCursor;
            }
            else
            {
                return handOpenCursor;
            }
        }
        set 
        {
            handOpenCursor = value;
        }
    }
}


.....



private static void panel_MouseUp(object sender, MouseEventArgs e)
{
    ((Control)sender).Cursor = GlobalVars.HandOpenCursor;
}
4

2 回答 2

0

3个月后,我终于确定了问题所在。它不是 .NET 或 XP,但我有一个带有自定义软件的罗技 G9 鼠标。

当光标卡住时,我转到控制面板-> 鼠标-> 指针方案,选择了正确的方案(Windows 默认),但方案的所有光标都是相同的 SizeAll 光标?!?!

我怀疑 G9 驱动程序导致了这种疯狂的行为。选择另一个方案,然后再次选择“Windows Default”可以解决问题。

于 2010-09-29T11:02:02.443 回答
0

不知道这个静态类有什么问题,除了它是线程不安全的。另一件事是,如果您为某些操作设置自定义光标,则需要将光标重置为正常状态。例如在这种情况下:

  this.Cursor = Cursor.Wait;
  throw new Exception();
  this.Cursor = Cursor.Default;

光标不会被重置。

于 2010-06-23T14:56:57.417 回答