2017-02-03 4 views
0

私のコードを作成します。どのように長方形の上にマウスイベントを作成するには、[X]後のクレートの矩形の長方形[X]

 Rectangle[] myRectangle = new Rectangle[100]; 
    for(int i=1;i<=100;i++) 
    { 
      myRectangle[i] = new Rectangle(); 
      // another code for create myRectangle[i] 
    } 

のMouseEnter長方形[X]と私は私が行いますsomething.Whatをしたいですか? ありがとうございます。

+0

まず、ループで例外が発生します。要素100はありませんが、アクセスしようとしています。ループを0から開始し、<100で実行するか、foreachを使用するように変更します。イベントに関しては、OnMouseEnterイベントにフックできる必要があります。私はまだチェックしていない。 – bixarrio

+1

'myRectangle [i] .MouseEnter + = <あなたのイベントハンドラメソッド>'。 – Clemens

+0

私は、rectangle [i] .RaiseEvent(new RoutedEventArgs(MouseEnterEvent));を使用します。 MouseEnterEventを作成するには、MouseEnterを実行したときにx値(1-100)に差分コードがあるため、どこにRectangle [x]のMouseEnterのコーデを作成できるか分かりません。 –

答えて

0

ここに入れる;

Rectangle[] myRectangle = new Rectangle[100]; 
for(int i = 0; i < 100; i++) 
{ 
    myRectangle[i] = new Rectangle(); 
    myRectangle[i].Tag = i; 
    myRectangle[i].MouseEnter += MouseEnter; 
} 
private void MouseEnter(object sender, MouseEventArgs e) 
{ 
    Rectangle rect = (Rectangle)sender; 
    int idx = (int)rect.Tag; 
    MessageBox.Show(idx.ToString()); 
} 
+0

を追加することができます。ハンドラメソッドの最初の2行を 'var rect =(Rectangle)sender; 'で置き換えることをお勧めします。何らかの理由で送信者が矩形でない場合、黙って無視するのではなく、InvalidCastExceptionを正しく取得します。 – Clemens

+0

それは仕事です。どうもありがとうございました!! –

+0

@Clemensこのケースでは、例外を無視したかったのですが、あなたは間違いありません。私は答えを更新します – bixarrio

関連する問題