有人和我有类似的问题;但他们实际上并没有得到有效的答案。我可以通过创建一个 bool 并在它进入 if 语句后将其设置为 false 来使其工作。我在使用该方法之前已经完成了,但是,我想知道是否有更清洁的方法。
问题: 为什么当我在计时器中使用带有简单确定按钮的消息框时,有人必须单击确定?否则你每秒都会收到相同的消息?在下面的代码中;它每隔一秒弹出一次,因为这是计时器设置的操作(滴答一秒),但它应该只在计时器达到 10 时显示一次,如下面的代码所示,但计时器仍应“滴答”因为它显示在标签中。
在有人将我撕成碎片之前,因为我注意到人们出于某种原因喜欢在这里做事;我的逻辑是,由于秒 = 10,它应该显示一次。当秒 = 11 时,它会显示一个额外的框是没有意义的,因为它是 11 而不是 10。我也想知道是什么原因造成的?
private void randomtimer_Tick(object sender, EventArgs e)
{
if (seconds == 10)
{
MessageBox.Show(this,"Why does this message display every one second over and over until someone clicks close or okay?");
}
seconds++;
if (seconds >= 60)
{
seconds = 0;
minutes = minutes + 1;
}
if (minutes >= 60)
{
minutes = 0;
hours = hours + 1;
}
string niceTime = string.Format("{0:D2}h:{1:D2}m:{2:D2}s", hours, minutes, seconds); //format the time so it displays nicely
label2.Text = "Session Length:\n" + niceTime;
}