日期:2014-05-17  浏览次数:21023 次

C#新建的cs怎么调用form1的timer控件
  public void ping_click_select()
        {
            ping_click++;
            if (ping_click > 100)
            {
                set_time.Enabled = false;
                int click_all = ping_click - 1;
                MessageBox.Show(click_all.ToString());
                ping_click = 0;
                click_all = 0;
            }
            else
            {
                set_time.Enabled = true;
                ping_thread();

            }
        }



set_time.Enabled = false;set_time.Enabled = true;这两个是控制定时器的触发的,,
上面那代码是我从form1抽出来放在新建的Class1.cs上。求怎么调用定时器。
用这个:public System.Windows.Forms.Timer set_time { set; get; }
在set_time.Enabled = true出现“未将对象引用到实例”的错误信息。

------解决方案--------------------
使用委托设置timer
public void ping_click_select(Action<bool> EnableTimer)
{
    ...
    //set_time.Enabled = true;
    EnableTimer(true);
    ...
}

调用
new class1().ping_click_select((x) => this.Timer1.Enabled = x);