2013-10-07 3 views
1

내가 필요한 것은 이 다른 클래스에있는 이벤트 처리기 (매초 말)를 실행시키는 것입니다. 이것은 Windows 양식 프로그램의 작은 부분이 될 것입니다.C# 타이머 개체의 이벤트 처리기

대리자를 사용하여 이벤트 처리기를 "호출"해봤지만 구문 오류가 계속 발생합니다. 누군가 단순한 코드 예제로 올바른 방향으로 나를 조종 할 수 있습니까?

아래 코드는 내 시작이지만 주석 처리 된 부분은 잘 작동하지만 Windows 타이머가 작동하면 이벤트가 발생합니다.

namespace WindowsFormsApplication3 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     public event TimerHandler Tick; 
     public EventArgs e = null; 
     public delegate void TimerHandler(Timer t, EventArgs e); 

     public class Timer 
     { 
      public event TimerHandler Tick; 
      public EventArgs e = null; 
      public delegate void TimerHandler(Timer t, EventArgs e); 
     } 

     public class Listener 
     { 
      public static int ticker = 0; 
      public void Subscribe(Timer t) 
      { 
       t.Tick += new Timer.TimerHandler(HeardTick); 
      } 
      private void HeardTick(Timer t, EventArgs e) 
      { 
       //lblTimer.Text = ticker.ToString(); //Don't know how to change forms control 
       ticker++; 
      } 
     } 

     private void btnStart_Click_1(object sender, EventArgs e) 
     { 
      Timer t = new Timer(); 
      Listener l = new Listener(); 
      l.Subscribe(t); 
      //t.Start(); 
     } 

     public void timer1_Tick(object sender, EventArgs e) 
     { 
      if (Tick != null) 
      { 
       Tick(this, e); // "this" is incorrect, invalid argument 
      } 
     } 
    } 
} 
+2

당신의 코드를 보여주십시오! 우리는 당신이 그것을 수정하도록 도울 것입니다 .. – Anirudha

+2

** Close-Voting : ** * 코드를 요청하는 질문은 해결 된 문제에 대해 최소한의 이해를 보여 주어야합니다. 시도한 해결책, 왜 실패했는지, 그리고 예상되는 결과를 포함 시키십시오. * –

+0

아마도 초보자에게 질문을 편집하기 전에 닫을 수 있습니까? :) –

답변

1

다른 클래스는 정적입니까?

//Static class 
Timer1.Tick += YourClass.DoStuff; 

//Non-static class 
YourClass MyInstance = new YourClass(); 
Timer1.Tick += MyInstance.DoStuff; 

그냥 양식의 생성자에 코드를 넣어 : 다음은 각각에 대한 예입니다.