标题:Timer控件如何获取运行状态
只看楼主
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
结帖率:86.21%
已结贴  问题点数:24 回复次数:10 
Timer控件如何获取运行状态
我的窗体中有3个Timer控件,我需要判断它们的状态,如果状态都处于停止状态,我就触发另外的操作。
请教如何获取Timer的运行状态?谢谢!
搜索更多相关主题的帖子: Timer 控件 状态 获取 运行 
2010-11-23 17:17
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:10 
可以检查timer的Enabled属性:bool status1 = timer1.Enabled;如果timer的Enabled是true的话就说明timer1正在运行!!
2010-11-23 19:08
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
得分:0 
回复 2楼 c1_wangyf
嗯,谢谢!问题是解决了,不过有个新问题请教。
我在一个窗体上放了3个Timer控件,我需要遍历这3个控件得到它们的状态怎么实现?
2010-11-23 20:57
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:5 
程序代码:
            bool state = false;
            foreach (Timer var in this.Controls)
            {
                if (var is Timer)
                {
                    state = var.Enabled;
                    MessageBox.Show(state.ToString());
                }
            }
楼主是不是这样想的。。。。。。理论上可以这么写 但是实际上是遍历不到的

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-24 08:36
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:4 
三个timer不是都有名字吗,检查对应名字的enabled属性不就行了!!

if (timer1.enabled=false)
{你需要的代码,或者设置一个flag}

虽然比较繁琐但是还是比较管用的!哈哈
2010-11-24 09:01
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:2 
c1_wangyf兄 我就奇怪啦 为什么我用foreach遍历不到呢 难道说Timer不是 this.Controls这个集合里的?

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-24 09:03
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:3 
果然如此  ContextMenuStrip、Timer 等控件都不在这个集合中,如果要获取还是得使用反射啊

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-24 09:06
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
得分:0 
谢谢各位的指点。。貌似这样可以遍历
程序代码:
foreach (Component c in this.)
            {
                if (c is Timer)
                {
                    MessageBox.Show("我的");
                }
            }

2010-11-24 10:16
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
回复 8楼 南川
俺 看着怎么这么眼熟 貌似前几天看到的c#合成模式有这个 这个做不到吧

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-24 10:26
南川
Rank: 4
等 级:业余侠客
威 望:1
帖 子:111
专家分:235
注 册:2010-6-25
得分:0 
回复 9楼 wangnannan
可以的,我试过在一个Form放了6个Timer,可以遍历的到的
2010-11-24 11:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-326653-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.114333 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved