社区
C#
帖子详情
winform中 一个timer启动另外一个timer引起的问题
cykevin
2009-12-23 04:45:57
在winform窗体中,我在一个timer的事件处理程序中启动了另外一个timer。当我在第一个timer处理时关闭了窗体后,发现另外一个timer的事件处理然运行了。我现在要实现的是,关闭窗体后,timer立刻停止处理,这个要怎么实现,请高人解答。
...全文
219
13
打赏
收藏
winform中 一个timer启动另外一个timer引起的问题
在winform窗体中,我在一个timer的事件处理程序中启动了另外一个timer。当我在第一个timer处理时关闭了窗体后,发现另外一个timer的事件处理然运行了。我现在要实现的是,关闭窗体后,timer立刻停止处理,这个要怎么实现,请高人解答。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cykevin
2009-12-24
打赏
举报
回复
一时搞不清这种现象发生的具体条件,先结贴。
tianliang1
2009-12-23
打赏
举报
回复
我看了半天,你是说你的两个Timer没有在一个窗体里吧。。。
这样涉及到窗体间控制的问题
myrroom
2009-12-23
打赏
举报
回复
[Quote=引用 4 楼 zhonghuaweixu 的回复:]
在窗体的关闭事件中调用方法关闭两个timer 事件
[/Quote]
这种方法不可以吗?
cykevin
2009-12-23
打赏
举报
回复
唉,一时不知道该怎么简单地把这个现象呈现出来了。
cykevin
2009-12-23
打赏
举报
回复
你在非主窗体中测试一下。
cykevin
2009-12-23
打赏
举报
回复
楼上,你的整个程序只有一个FORM,这个窗体一关闭,当然什么都释放了。
googlegis
2009-12-23
打赏
举报
回复
2楼的应该还是可以的。随手测试了一下。
int i = 0;
int j = 0;
private void timer1_Tick(object sender, EventArgs e)
{
i = i + 1;
if (i == 2) // 启动timer2
{
timer2.Interval = 1000;
timer2.Enabled = true;
}
else if (i == 100) // 处理完毕后关闭窗体
{
timer1.Enabled = false;
this.Close();
}
}
private void timer2_Tick(object sender, EventArgs e)
{
j = j + 1;
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Interval = 100;
timer1.Enabled = true;
timer2.Enabled = false;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
timer2.Enabled = false; // 停止 timer2
if (timer2.Enabled == false)
{
MessageBox.Show("第二个已经停止");
}
}
风之影子
2009-12-23
打赏
举报
回复
在第二个需要关闭的timer窗口的timer事件里用一个字段来进行控制,如果这个字段的值改变就停止timer
在第一个窗体里控制这个字段的值
zhouxingyu896
2009-12-23
打赏
举报
回复
timer.Enabled=false
试试看
zhonghuaweixu
2009-12-23
打赏
举报
回复
在窗体的关闭事件中调用方法关闭两个timer 事件
lhy011
2009-12-23
打赏
举报
回复
应该可以的,写在被关闭的那个窗体的FormClosing事件中。
cykevin
2009-12-23
打赏
举报
回复
[Quote=引用 1 楼 qlzf11140820 的回复:]
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
timer.Stop();
}
[/Quote]
这个不管用,因为前一个timer的事件处理程序已经在运行了。
qlzf11140820
2009-12-23
打赏
举报
回复
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
timer.Stop();
}
关于
winform
使用
timer
进行多线程操作的例子
关于
winform
使用
timer
进行多线程操作的例子
一个
关于网段ping的例子 很好的解释了system.
timer
s.
timer
的用法
C#
一个
简单例子
WinForm
程序添加
启动
画面
C#
一个
简单例子
WinForm
程序添加
启动
画面 Visual Studio 2015和Visual Studio 2017 运行ok,电脑里只有这两个版本。 非常简单的例子,新人学习用!
c#+
WINFORM
+漂亮的软件
启动
界面特效源码
c#+
WINFORM
+漂亮的软件
启动
界面特效源码
用
winform
动态实现系统当前日期和时间
用
winform
,结合
timer
控件,来动态实现系统当前日期和时间。
C#
Timer
的多线程使用方法
使用System.Threading.
Timer
使用System.
Timer
s.
Timer
分别举例这两个类来实现多线程的时钟,不会阻塞UI线程 例子是
Winform
的
C#
111,120
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章