每X秒执行指定的function
我有用C#编写的Windows窗体应用程序。 打印机在线或不在线时,以下function将被检查:
public void isonline() { PrinterSettings settings = new PrinterSettings(); if (CheckPrinter(settings.PrinterName) == "offline") { pictureBox1.Image = pictureBox1.ErrorImage; } }
并在打印机处于脱机状态时更新图像。 现在,我怎么能每2秒执行一次isonline()
函数,所以当我拔下打印机时,窗体上显示的图像( pictureBox1
)会变成另一个图像而不重新启动应用程序或进行手动检查? (例如通过按下运行isonline()
函数的“刷新”button)
使用System.Windows.Forms.Timer 。
private Timer timer1; public void InitTimer() { timer1 = new Timer(); timer1.Tick += new EventHandler(timer1_Tick); timer1.Interval = 2000; // in miliseconds timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { isonline(); }
您可以在Form1_Load()
调用InitTimer()
Form1_Load()
。
最初学者友好的解决scheme是:
从工具箱拖一个定时器,给它一个名称,设置你想要的间隔,并将“启用”设置为真。 然后双击计时器和Visual Studio(或任何你正在使用)会写你下面的代码:
private void wait_Tick(object sender, EventArgs e) { refreshText(); //add the method you want to call here. }
你去了 无需担心粘贴到错误的代码块或类似的东西。
你可以通过在你的表单中添加一个Timer(devise者),并设置它的Tick函数来运行你的isonline函数。