2017-11-15 5 views
0

타원 수를 묻는 프로그램을 만들었지 만 C#의 다른 창에서 프로그램을 만들었지 만 MouseEnter 내가 MouseDown라고 이해 온 클릭 이벤트,하지만 난 타원의 배열을 만들어 나는 다음과 같은 시도 : 내가 이해 효과 오버 마우스가 호출됩니다프로그램을 실행하는 동안 내 마우스 오버 (마우스 오버) 및 클릭 이벤트 발생 방법

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 방법을 만들고, 그 말이 우리가 그것에 대해 생각할 때. Window에는 이러한 이벤트가있는 객체가 여러 개있을 수 있습니다. 누가 코드를 청취해야 하는지를 코드에 어떻게 알려야합니까?

관련 문제