Курсор ПК (иногда) зависает на SizeAll, вызванном Logitech G9 - PullRequest
0 голосов
/ 23 июня 2010

Мы заметили некоторое странное поведение курсора, которое, как мы подозреваем, является результатом одного из наших методов фиксации курсора. Просто иногда наш компьютер продолжает показывать курсор SizeAll. Везде, в каждом приложении. Теперь мы никогда не используем курсор SizeAll в любом месте нашего кода, но мы можем «открепить» курсор при выполнении следующего кода.

Мы подозреваем, что проблема связана со статическим свойством Cursor, но не можем определить ошибку.

Что не так с кодом?

Спасибо всем, хотя.

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;
}

Ответы [ 2 ]

0 голосов
/ 29 сентября 2010

Ну через 3 месяца я наконец-то определил проблему. это был не .NET или XP, но у меня есть мышь Logitech G9 с пользовательским программным обеспечением.

Когда курсор застрял, и я захожу в Панель управления -> Мышь -> Схемы указателя, выбирается правильная схема (окна по умолчанию), но ВСЕ КУРСОРЫ схемы одинаковые SizeAll курсор? *

Я подозреваю, что драйвер G9 вызывает это сумасшедшее поведение. Выбор другой схемы, а затем снова «Windows Default» решает проблему.

0 голосов
/ 23 июня 2010

Не знаю, что не так с этим статическим классом, за исключением того, что он небезопасен. Другое дело, что если вы устанавливаете пользовательский курсор для какого-либо действия, вам нужно сбросить курсор в нормальное состояние. Например, в этом случае:

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

Курсор не будет сброшен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...