2012-10-16 3 views
0

윈도우 폼에서 동적으로 타이머 컨트롤을 만들 때 어떻게 타이머 컨트롤의 개체를 구별 할 수 있습니까? 타이머 컨트롤은 n 숫자입니다 ... 이것은 런타임시 deisde입니다. 와 타이머 컨트롤을 대체 할타이머 컨트롤의 인스턴스는 무엇입니까? 창문 양식?

class MainForm(Form) 
{ 

    Dictionary<string, Timer> timers; 

    public MainForm() 
    { 
     InitializeComponents(); 
     timers = new Dictionary<string, Timer>(); 
    }  


    public Timer AddTimer(string name, int interval, bool enabled, int id) 
    { 
      Timer t = new Timer(); 
      t.Interval = interval; 
      t.Enabled = enabled; 
      t.Tag = id; 
      t.Ticks += new EventHandler(TimerEventProcessor); 
      timers.add(name, t); 

      return t; 
    } 

    public Timer GetTimer(string name) 
    { 
     if (timers.ContainsKey(name)) 
     { 
       return timers[name]; 
     } 
     else 
     { 
       return null; 
     } 
    } 

     private static void TimerEventProcessor(Object myObject, 
              EventArgs myEventArgs) { 
      Timer sourceTimer = myObject as Timer; 
     } 
    } 
} 

답변

1

, 당신은 또한 타이머의 태그 속성을 사용할 수 있습니다 .. 내가 당신을 감사 도움말 스레드. 무제한 타이머 컨트롤에는 스레드보다 많은 리소스가 필요합니다.

타이머 컨트롤을 계속 사용하는 경우 배열에 생성 된 각 타이머의 컨트롤 이름을 저장하는 것이 더 좋으며 배열을 검색하여 원하는 컨트롤 이름을 선택할 수 있습니다.

+0

감사합니다. Mr. Icfseth 내가 확인하고 알려 드리겠습니다. –

+0

Mr. Icfseth, 쓰고 있습니다 ... Timer t = new Timer(); t.Name = 이름; 내가 t.Name 오류가 발생했습니다 그런 속성이 없습니다 –

+0

당신은 절대적으로 옳았습니다. 그냥 그 줄을 버리십시오. –

0

그것은 더 :

당신은 단순히 당신의 기본 폼에 입력 사전의 인스턴스 필드를 만들
+0

안녕하세요 vijaykumar, 당신은 나에게 쓰레드를 사용하라고 말했지만 그것은 타이머 na와 같지 않습니다. 저는 두 번째로 데이터를 가져 오려고합니다. 쓰레드를 사용하는 것이 가능한가요? –