2013-10-27 4 views
0

나는 C#에서 이벤트 처리를 배우고 그냥 내 GUI 응용 프로그램에 몇 가지 이벤트를 추가 할 수있는 방법을 찾고 있었다C#에서 이벤트를 추가하는 방법은 무엇입니까?

delegates 

의 기본적인 사용법을 배웠습니다. 예를 들어 다음 코드를 확인하십시오. -

private void label1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Hello World") ; 
    } 

이 함수는 label1 레이블을 클릭 할 때마다 HelloWorld 내용이있는 MessageBox를 표시합니다. 나는 레이블과 다른 이벤트에 마우스를 올려 놓는 것과 같은 다양한 다른 이벤트를 어떻게 추가 할 수 있는지 알고 싶었습니다. 또한, 마우스 오버 이벤트에 대리자를 추가합니다 매개 변수

sender and e 
+0

[이 이벤트를 C#으로 추가하는 방법] (http://www.codeproject.com/Questions/186832/Solved-How-to-add-Event-for-C-Control) –

답변

3

label1.OnMouseHover += myDelegate의 사용은 무엇인가.

list of events을 참조하십시오.

+0

감사 대답은 –

0
label1.Click += new System.EventHandler(label1_Click); 
0

클래스를 만들고 이벤트를 추가하면 더 좋아질 것입니다.

기본 "e"는 System.EventArgs의 인스턴스입니다. 예 :

public class MyEventArgs : System.EventArgs 
{ 
    public string EventData {get; private set;} 
    public MyEventArgs(String argEventData) 
    { 
     EventData = argEventData; 
    } 
} 

그런 다음

public class SomeFellaWithAnEvent 
{ 
    public event EventHandler<MyEventArgs> OnMyEvent; 
    private int _value; 
    public int Value 
    { 
    get {return _value;} 
    set 
    { 
     if (_value != value) 
     { 
      _value = value; 
      DoEvent(_value.ToString(); 
     } 
    } 
    } 


    protected void DoEvent(String argData) 
    { 
     if (OnMyEvent != null) 
     { 
      OnMyEvent(this,new MyEventArgs(argData)) 
     } 
    } 
} 

그래서 지금 당신이 가치를 얻을 경우에 당신이 그것을 핸들러

예를 준 경우의가가 이벤트를 발생시킬 것이다 변경 뭔가를 클래스에 위의를 사용하는

SomeFellaWithAnEvent o = new SomeFellaWithAnEvent() 
o.OnMyEvent += someThingChanged(); 
o.Value = 22; 

private void somethingChanged(Object sender, MyEventArgs e) 
{ 
    // do something with it. 
    // debug this and you'll see sender is the o instance above, and e is the instance 
    // of MyEventArgs created in the DoEvent method and has a property set to "22" 
} 

이벤트 처리기를 도구 상자의 기존 컨트롤에 추가하려면. 속성 관리자에서 이벤트 탭 (번개 단추)을 클릭 한 다음 값을 두 번 클릭합니다.

또는 코드보기에서 label1.Click + = 을 입력 한 다음 탭을 두 번 누릅니다.

관련 문제