1

我有一个 dll,里面有一个计时器控件,里面有一个消息框。计时器已启用,时间间隔已设置为 100 秒,但由于某种原因它没有触发。我添加了按钮来检查它是否已启用,并且 timer1.enabled 属性设置为 true,但它甚至不会触发一次。有什么想法可能是错的吗?谢谢!

DLL代码:

    private void timer1_Tick(object sender, EventArgs e)
    {
        MessageBox.Show("Test");
    }

这就是我调用 dll 表单的方式:

    M.ModuleInterface module = Activator.CreateInstance(t) as M.ModuleInterface;
    Thread t = new Thread(module.showForm);
    t.Start();

showForm 方法:

    void M.ModuleInterface.showForm()
    {
        log("GUI::Initialized()");
        frm.ShowDialog();
    } 
4

1 回答 1

1

我相信,单从你的话来看,你只是忘了登记时间。

做:

  public Form1()
  {
     InitializeComponent();
     this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
  }

  private void timer1_Tick(object sender, EventArgs e)
  {
     // Your code here
  }

这个小例子工作得很好:

  private System.Windows.Forms.Timer timer1;
  public Form1()
  {
     InitializeComponent();
     timer1 = new System.Windows.Forms.Timer();
     timer1.Interval = 100;
     this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
     timer1.Enabled = true;
  }

  private void Form1_Load(object sender, EventArgs e)
  {
    // timer is triggered. code here is called
  }
于 2013-09-10T08:39:04.910 回答