社区
C#
帖子详情
winform中 一个timer启动另外一个timer引起的问题
cykevin
2009-12-23 04:45:57
在winform窗体中,我在一个timer的事件处理程序中启动了另外一个timer。当我在第一个timer处理时关闭了窗体后,发现另外一个timer的事件处理然运行了。我现在要实现的是,关闭窗体后,timer立刻停止处理,这个要怎么实现,请高人解答。
...全文
209
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
进行多线程操作的例子
在`Form2.cs`文件
中
,我们可能会看到
一个
`
Timer
`实例被创建,并设置了间隔时间,例如: ```csharp System.
Timer
s.
Timer
timer
= new System.
Timer
s.
Timer
();
timer
.Interval = 5000; // 每5秒触发一次
timer
....
C#
一个
简单例子
WinForm
程序添加
启动
画面
本文将通过
一个
简单的例子,详细解释如何在C#
WinForm
程序
中
添加
启动
画面。 首先,你需要使用Visual Studio IDE,这里提到的是2015或2017版本。打开IDE,创建
一个
新的Windows Forms应用程序项目。在解决方案资源...
c#+
WINFORM
+漂亮的软件
启动
界面特效源码
标题 "c#+
WINFORM
+漂亮的软件
启动
界面特效源码" 暗示我们将讨论如何通过C#和
WinForm
s实现
一个
美观且有特效的
启动
界面。这个
启动
界面通常是在应用程序开始运行时显示的,目的是提高用户体验,同时应用程序在后台进行...
用
winform
动态实现系统当前日期和时间
Timer
控件是
Winform
中
的
一个
重要组件,它可以周期性地触发
一个
事件,例如Tick事件。我们可以通过设置
Timer
的Interval属性来控制触发事件的间隔时间,单位为毫秒。当
Timer
的Tick事件被触发时,可以执行相应的代码,...
C#
Timer
的多线程使用方法
在实际的
Winform
项目
中
,例如“测试多线程”这个示例,你可以创建
一个
简单的界面,包含
一个
计数器显示时间和
一个
按钮
启动
/停止定时器。通过以上两种方式实现定时器,观察它们在多线程环境下的行为差异,同时学习如何...
C#
111,120
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章