100毫秒定时器,我想每个计时器勾号返回0或1
我想做一个功能。100毫秒定时器,我想每个计时器勾号返回0或1
每个计时器都会打勾,它会闪烁绿色 并且每隔一秒计时器打勾一次就会关闭绿色。
我有一个计时器,我的胜利形式是100毫秒的时间间隔。
所以 每200毫秒我的颜色会闪烁绿色..
你可以帮我一下吧
这并不工作
var green = (((float)System.Environment.TickCount/100) % 2) != 0; if (green==true)
{
greenColor);
if (green==false)
{
noColor);
}
回答:
因为你有2个州(彩色或无颜色),每次我交换我推荐使用bool
,并在计时器结束时反转其值,如下所示:
bool tick; private void theTimer_Tick(object sender, EventArgs e)
{
if(tick)
{
colorLabel.BackColor = Color.Red;//Using label as example
}
else
{
colorLabel.BackColor = Color.Green;
}
tick = !tick;//Invert tick bool
}
这样你就不需要计数器的时间,也不必计算各种东西。
回答:
你几乎在那里。只是不要使用(float)
。使用整数算术。
bool green = (System.Environment.TickCount/100) % 2 == 0;
如果您使用浮点其余部分(我不推荐),那么你的测试不应该== 0
应该< 1
。否则,当余数精确为零时,它只会在1 ms内变为绿色。
bool green = (((float)System.Environment.TickCount/100) % 2) < 1;
以上是 100毫秒定时器,我想每个计时器勾号返回0或1 的全部内容, 来源链接: utcz.com/qa/265308.html