繁体   English   中英

C#中的简单计时器

[英]Simple Timer in C#

我有这个代码

private void picTop_MouseEnter(object sender, EventArgs e)
{
  if (timer1.Tick == 10)
  {
    picBottom.Visible = true;
    picTop.Visible = false;
    timer1.Stop();
  }
  else 
  {
    MessageBox.Show("ERROR You cannot view this section at this time.\nPlease try again later.");
  }
}

private void picBottom_MouseEnter(object sender, EventArgs e)
{
  picBottom.Visible = false;
  picTop.Visible = true;
  timer1.Start();
}

我的timerinterval设置为1000ms(所以1秒),我只希望用户在10秒后再次进入顶部面板。 一些帮助将不胜感激。

我得到的当前错误是:timer1.Tick用红色下划线标记,错误=“事件'System.Windows.Forms.Timer.Tick'只能出现在+ =或-=”的左侧

Timer.Tick不是其事件的属性。

像这样使用

timer1.Tick += 
{
    picBottom.Visible = true;
    picTop.Visible = false;
    timer1.Stop();
}

对于间隔使用timer.Interval

timer.Interval = 10000;

好。 我想我了解您要达到的目标...

您的表单上有两个区域,分别称为“顶部”和“底部”

用户进入并随后离开顶部区域后,您不希望他们在10秒钟内再次进入。 那是对的吗?

因此,您遇到了一些问题...首先, Tick是一个事件,您将对其添加方法,以在引发该方法时将其触发。 它不是可以检查的整数。 与计时相关的计时器上唯一的整数属性称为“ Interval

但是除此之外,我认为您的方法不会特别有效。 也许更好的主意是将MouseExit事件添加到顶部区域。 并禁用该区域10秒钟。 并使用计时器重新启用它。

timer1.Tick += timer1_Tick;

public void Top_MouseExit (object sender, EventArgs e)
{
   PicTop.Visible = false; // or hide/disbale it some other way
   Timer1.Interval = 10000; //10 seconds
   Timer1.Start();
}

public void timer1_Tick(object sender, EventArgs e)
{
    timer1.Stop();
    PicTop.Visible = true; //renable the top area
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM