0

いくつかの奇妙なカーソルの動作に気づきました。これは、カーソルのカンジングメソッドの1つの結果であると思われます。たまに、私たちのPCは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

スレッドセーフでないことを除いて、この静的クラスの何が問題なのかわかりません。また、アクションにカスタムカーソルを設定した場合は、カーソルを通常の状態にリセットする必要があります。たとえば、この場合:

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

カーソルはリセットされません。

于 2010-06-23T14:56:57.417 に答える
0

3か月後、ようやく問題を特定しました。.NETでもXPでもありませんでしたが、カスタムソフトウェアを備えたLogitechG9マウスを持っています。

カーソルが動かなくなったときに、[コントロールパネル]->[マウス]->[ポインタースキーム]に移動すると、正しいスキームが選択されます(Windowsのデフォルト)が、スキームのすべてのカーソルは同じSizeAllカーソルですか?!?!

G9ドライバーがこのクレイジーな動作を引き起こしているのではないかと思います。別のスキームを選択してから、もう一度「Windowsデフォルト」を選択すると、問題が解決します。

于 2010-09-29T11:02:02.443 に答える