C# winform中timer函数如何停止,点运行后可再次启动周期事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform中timer函数如何停止,点运行后可再次启动周期事件相关的知识,希望对你有一定的参考价值。

在MenuStrip1控件中,在Form1窗体没有添加timer1控件
运行RunMenu_Click
private void RunMenu_Click(object sender, EventArgs e)

//到达时间的时候执行事件,周期为10秒;
System.Timers.Timer timer1 = new System.Timers.Timer(10 * 1000);
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Tick);
timer1.AutoReset = true; //设置一直执行(true)
timer1.Enabled = true; //是否执行System.Timers.Timer.Elapsed事件

RunMenu.Enabled = false;
StopMenu.Enabled = true;

private void timer1_Tick(object sender, EventArgs e)

//是连接sql,插入数据操作

停止StopMenu_Click,停止timer应该怎么实现呢
private void StopMenu_Click(object sender, EventArgs e)

??timer1 .Enabled = false; ??吗,timer1没有此参数。
RunMenu.Enabled = true;
StopMenu.Enabled = false;

运行可以,就是停止StopMenu不会写,Form1窗体没timer1控件
StopMenu_Click 函数应该怎么写,谢谢!!
嗯,得把timer1拿出来定义辉比较行的通。
但是按一楼的在函数外实例化不成功。汗....
应该怎么实例化啊

在外面定义一个变量,不要实例化
System.Timers.Timer timer1;
然后:
private void RunMenu_Click(object sender, EventArgs e)

//到达时间的时候执行事件,周期为10秒;
timer1 = new System.Timers.Timer(10 * 1000);
//这里不要定义变量!
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Tick);
timer1.AutoReset = true; //设置一直执行(true)
timer1.Enabled = true; //是否执行System.Timers.Timer.Elapsed事件

RunMenu.Enabled = false;
StopMenu.Enabled = true;

最后:
private void StopMenu_Click(object sender, EventArgs e)

timer1.Stop();
//这里停止计时
RunMenu.Enabled = true;
StopMenu.Enabled = false;
参考技术A //到达时间的时候执行事件,周期为10秒;
System.Timers.Timer timer1 = new System.Timers.Timer(10 * 1000);
timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Tick);
private void RunMenu_Click(object sender, EventArgs e)


timer1.AutoReset = true; //设置一直执行(true)
timer1.Enabled = true; //是否执行System.Timers.Timer.Elapsed事件

RunMenu.Enabled = false;
StopMenu.Enabled = true;

private void timer1_Tick(object sender, EventArgs e)

//是连接sql,插入数据操作

停止StopMenu_Click,停止timer应该怎么实现呢
private void StopMenu_Click(object sender, EventArgs e)

timer1 .Enabled = false;
RunMenu.Enabled = true;
StopMenu.Enabled = false;

这样就行了,把Timer1拿出来
不然会提示你Timer1未定义
参考技术B timer1.stop();

如何在 C# winform 中每分钟自动调用一个方法

【中文标题】如何在 C# winform 中每分钟自动调用一个方法【英文标题】:how to call a method every min automactic in C# winform 【发布时间】:2017-09-25 14:43:36 【问题描述】:

在 C# winform 中每 5 秒自动运行一个函数 当一个程序执行时我调用一个方法来加载我怎样才能把这段代码放在c#winform中

public void InitTimer()


    timer1 = new Timer();
    timer1.Tick += new EventHandler(timer1_Tick);
    timer1.Interval = 200; // in milliseconds
    timer1.Start();


private void timer1_Tick(object sender, EventArgs e)

    MessageBox.Show("test");

【问题讨论】:

但是您的代码不起作用吗?您必须更改的一件事是到 5000(5 秒)的间隔。但除此之外,我不知道你到底有什么疑问 【参考方案1】:

将 200 替换为 5000

public void InitTimer()

    timer1 = new Timer();
    timer1.Tick += new EventHandler(timer1_Tick);
    timer1.Interval = 5000; // in milliseconds => 1 sec = 1000 millisec
    timer1.Start();


private void timer1_Tick(object sender, EventArgs e)

    MessageBox.Show("test");

【讨论】:

我知道,但我的问题是我把这个方法放在哪里,比如加载等...... 我不了解你的业务,但我建议在constructor使用它【参考方案2】:

如果您使用 Visual Studio,请在工具框中将计时器拖到表单中,将时间间隔设置为 5000,将启用设置为 true。这将在加载时自动启动计时器,否则在表单加载中使用

timer1.Start();

这将在页面加载时启动计时器。

【讨论】:

以上是关于C# winform中timer函数如何停止,点运行后可再次启动周期事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# winform 中每分钟自动调用一个方法

c# timer停止不了,请问如何解决

C#WinForm中如何实现长摁一个按钮button实现循环执行一个操作,放开就停止执行

C# winform程序,UI界面锁死。如何处理?

C# System.Threading.Timer如何停止

c# Timer异常停止