0

我有这个代码

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 设置为 1000 毫秒(所以 1 秒)我只希望用户在 10 秒后再次进入顶部面板。一些帮助将不胜感激。

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

4

2 回答 2

2

Timer.Tick不是财产,而是事件。

像这样使用它

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

用于间隔使用timer.Interval

timer.Interval = 10000;
于 2012-10-25T10:38:42.980 回答
1

好的。我想我理解你想要达到的目标......

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

一旦用户进入并随后离开顶部区域,您不希望他们能够再次进入 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
}
于 2012-10-25T10:44:05.807 回答