2

カスタム コントロールを作成しています。そのコントロールには、約 20 のサブ コントロールがあります。ユーザー コントロールでカーソルを移動すると、移動中のサブ コントロールに応じてカーソルが変更されます。

例えば:

User Control
--Control 1 : if(Condition 1) { Mouse - Wait } else { Mouse - Default }
--Control 2 : if(Condition 1) { Mouse - Hand } else { Mouse - Default }
--Control 3 : Mouse - Default

......すぐ。

ユーザーコントロールのMouseMoveイベントで、どのサブコントロールを移動しているのかを判断して、単一のイベントでカーソルを変更できるようにする方法はありますか?

4

3 に答える 3

3

イベントに依存する必要はなくCursor Property、指定されたコントロールを使用できます。たとえば、TextBox が 3 つある場合、「デザイン ビュー」の「プロパティ ボックス」でこのプロパティを変更するか、次のように記述します。

textBox1.Cursor = Cursors.WaitCursor;
textBox2.Cursor = Cursors.Hand;
textBox3.Cursor = Cursors.Default;

各テキストボックスに「入力」すると、カーソルは指定された形状を表示します。

于 2013-09-09T09:32:25.813 に答える
0

このようにすることができます。button1、button2、button3 という名前の 3 つのボタンがあるとします。

  1. フォームの読み込み時にこれを書く

this.button1.MouseHover += 新しい System.EventHandler(this.MouseHover); this.button2.MouseHover += 新しい System.EventHandler(this.MouseHover); this.button3.MouseHover += 新しい System.EventHandler(this.MouseHover);

  1. これを new event として書きます:

    private void MouseHover(object sender, EventArgs e) { Button oButton = (Button)sender; if (oButton.Name == "button1") { oButton.Cursor = Cursors.WaitCursor; } そうでなければ (oButton.Name == "button2") { oButton.Cursor = Cursors.Hand; } そうでなければ (oButton.Name == "button3") { oButton.Cursor = Cursors.Default; } }

必要に応じて機能します。

ありがとう

于 2013-09-09T09:38:10.197 に答える