在C#中调用计时器

时间:2014-11-26 15:46:00

标签: c# timer

我想知道是否有人可以提供一些建议。我需要在程序中自动执行一个过程,当捕获指纹时,它会通过向导中的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&#39 ;

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

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

在AddFingerprintsPage上,添加一个静态bool并将其命名为“Stopped”,并在计时器停止时将该值设置为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,因为它不是静态的。