在 C# 中调用计时器

本文关键字:计时器 调用 | 更新日期: 2023-09-27 18:32:11

我想知道是否有人可以提供一些建议。我需要在我的程序中自动化一个过程,当指纹被捕获时,它会通过在向导中调用 ShowNext() 自动进入下一页。

public partial class AddFingerprintsPage : Neurotec.Samples.WizardPage
...
        #region Scanner // Fingerprint Scanner
        public void timer1_Tick(object sender, EventArgs e)
        {
            Timer timer1 = new Timer();
            timer1.Interval = 1000; 
            timer1.start() // 
              {
                Form2 f2 = new Form2();
                f2.Show(); // Display Form2 which asks user to present finger..
              }
              if (capturing..)
                 { 
                  blah blah capture finger.. 
                  timer1.stop()
                  }
         }

....

public partial class WizardForm : Form
  ....
    public void ShowNext() // In the wizard form, go to the next page
    {
        ShowPage(_currentPage + 1, false);
    }

我不确定什么是最好的。我尝试过制作一个if语句,所以当timer1.stop出现在指纹中时,我在WizardForm中调用它并转到下一页。但是我很确定我没有正确调用它,即使我有,我仍然有这个错误'非静态字段需要一个对象,属性的方法'NeurotechSamples.AddFingerprintsPage.timer1'

    public void ShowNext()
    {
        if(Neurotec.Samples.Fingers.AddFingerprintsPage.timer1.stop()) // Not sure what to call here?
        ShowPage(_currentPage + 1, false);
    }

任何帮助将不胜感激!

在 C# 中调用计时器

在 AddFingerprintsPage 上,添加一个静态布尔值并将其命名为 "Stop",并在计时器停止时将值设置为 true:

  public static bool Stopped = false;

  if (capturing..)
             { 
              blah blah capture finger.. 
              timer1.stop()
              Stopped = true;
              }

然后你可以说:

 public void ShowNext()
{
    if(Neurotec.Samples.Fingers.AddFingerprintsPage.Stopped) 
    {
         ShowPage(_currentPage + 1, false);
    }
}

您得到的错误是,您需要创建一个新的 Neurotec.Samples.Fingers.AddFingerprintsPage 实例才能引用 timer1,因为它不是静态的。