定时器控件的实例?在窗口形式?

时间:2012-10-16 05:27:56

标签: winforms

在窗口窗体中,当我动态创建定时器控件时,如何区分定时器控件的对象,定时器控件是n号...它在欠幅时间是deisde。帮帮我谢谢..

2 个答案:

答案 0 :(得分:1)

您只需在主窗体上创建一个Dictionary类型的实例字段,您也可以使用计时器的Tag属性:

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)

最好用线程替换定时器控件。无限制的计时器控件需要比线程更多的资源。

如果继续使用计时器控件,最好存储在数组中创建的每个计时器的控件名称,然后可以通过搜索数组选择所需的控件名称。