2017-11-15 9 views
0

楕円の数を聞いてC#の別のウィンドウに表示するプログラムを作っていますが、 MouseEnterと私は理解のonclickイベントは、MouseDownイベントと呼ばれ、私は楕円のアレイを作り、私は次のことを試みた:効果-Iは理解の上でマウスが呼び出されプログラムを実行しているときにマウスオーバー(クリック)とクリックイベントを行うにはどうすればいいですか?

namespace WpfApp1 
{ 
/// <summary> 
/// Interaction logic for Window2.xaml 
/// </summary> 
public partial class Window2 : Window 
{ 
    int numOfElipses; 
    public Window2() 
    { 
     InitializeComponent(); 
     numOfElipses= MainWindow.numOfElipse; 
     Ellipse[] ellipsePoints = new Ellipse[numOfElipses]; 
     Random rnd = new Random(); 
     for (int i=0;i<numOfElipses; i++) 
     { 
      SolidColorBrush brush = 
           new SolidColorBrush(
            Color.FromRgb(
            (byte)rnd.Next(255), 
            (byte)rnd.Next(255), 
            (byte)rnd.Next(255) 
            )); 
      var top = rnd.Next(0, 280); 
      var left = rnd.Next(0, 450); 
      ellipsePoints[i] = new Ellipse(); 
      ellipsePoints[i].Width = 40; 
      ellipsePoints[i].Height = 40; 
      Canvas.SetTop(ellipsePoints[i], i); 
      Canvas.SetLeft(ellipsePoints[i], i*45); 
      ellipsePoints[i].Fill = brush; 
      c1.Children.Add(ellipsePoints[i]); 
     } 
    } 
    private void E1_MouseEnter(object sender, MouseEventArgs e) 
    { 
     Random r = new Random(); 
     Ellipse ellipsePoints = (Ellipse)sender; 
     ellipsePoints.Fill = new 
     SolidColorBrush(Color.FromRgb((byte)r.Next(255), (byte)r.Next(255), 
     (byte)r.Next(255))); 
    } 
    private void E1_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     c1.Children.Remove((Ellipse)sender); 
    } 

} 
} 

それが動作しません誰かが理由と方法を説明してもらえますか?それをマウスの上でマウスの上でランダムに変更し、マウスのクリックで消えたり消えたりすることはできますか? 本当に助けていただければ幸いです!

+0

動作しないのは少し不明です。このプログラムを実行しようとするとどうなりますか? – MrPaulch

+1

実際にイベントを配線しましたか?メソッドを作成するだけで何もできません。 – TyCobb

+0

私はそれを実行しようとすると、私はループで行ったような別の(ランダム)色で楕円を見ることができますが、楕円の上にマウスを置いたり、何も起こらないときはいつでも。ループとすべての作品は、イベントはありません。送信者がそれを世話することになっていたにもかかわらず、私が現在行っているオブジェクトを認識しない可能性があります。 – Karoline

答えて

1

コメントで述べたように、あなたが実際にあなたが作成している楕円にイベントをフックする必要があります。

... 
ellipsePoints[i].MouseEnter += E1_MouseEnter; // "hook up" the Mouse Enter event 
ellipsePoints[i].MouseDown += E1_MouseDown;  // "hook up" the Mouse Down event 
c1.Children.Add(ellipsePoints[i]); 
... 

単にE1_MouseEnterE1_MouseDownメソッドを作成すると、自動的にそれらを配線し、それは理にかなっていません私たちはそれについて考えるとき。ウィンドウには、それらのイベントを持つオブジェクトがいくつでも存在する可能性があります。どのようにコードを聞くべきかを知るはずです。

関連する問題