2

私はこれをやろうとしています

panel.Enabled = false; // to disable all controls on panel at once
panel.Cursor = Cursors.WaitCursor;

デバッガーは、panel.CursorがWaitCursorであることを示していますが、マウスをパネル上に移動すると、カーソルはArrowのままです。

panel.Update(); panel.Refresh(); // does not help

それで、それを修正する方法は?

4

1 に答える 1

3

無効なコントロールは、Windows メッセージを受信しません。最も簡単なのは、有効にしたままにして、「無効」を別の方法で処理することです。

特定のニーズに対する代替手段は、以下のコードをボタンの親に追加することです。変更が必要な場合にのみ呼び出すようにルーチンを最適化できます。

        this.MouseMove += (s, a) =>
                              {
                                  if (button2.Bounds.Contains(a.Location))
                                      this.Cursor = Cursors.WaitCursor;
                                  else
                                      this.Cursor = Cursors.Default;
                              };
于 2012-06-26T19:28:23.813 に答える