解决 定时消息框复制消息框

颂歌

众所周知的成员
加入
2020年12月11日
消息
122
编程经验
Beginner
我有一个消息框,表明我想在给定时间弹出。

我在下面设置了代码,但它像9次触发,我得到9个消息框 - 所有相同的东西。我假设这是由于蜱虫在第二个滴答(鉴于我的时钟间隔设置为100) - 所以我试图在间隔休息中工作

C#:
System.Timers.Timer t = new System.Timers.Timer();

t.Interval = 2000;
t.Start();
t.Stop();

这不起作用,所以尝试了一个Bool,我可以改变一旦消息框显示出来,但这也不起作用。

正如您可以想象的那样,尝试使用断点调试这是非常艰难的,我必须每次更改我的PC时钟,当然,它停止了断点的那一刻,下一个勾选稍后几秒钟并完全绕过代码它不是23:55:00 ...

我只是想知道是否有人为这种类型的东西有一个整洁的解决方法,以便在蜱虫上射击消息框。

BOOL的代码如下所示,但正如我所说,它不起作用。

C#:
bool isOpen = false;

            if (time == "23:55:00")
            {
                if (isOpen == false)
                {
                    if (File.Exists(EX1))
                    {
                        MessageBox.Show($"At 11:59pm the application will delete ALL data files, including the excel {EX1}");
                        isOpen = true;
                    }
                    else
                    {
                        MessageBox.Show("At 11:59pm the application will create an Excel.");
                        isOpen = true;
                    }
                }
                else
                {

                }
            }

只是你知道,我也试过了以下内容:

C#:
if (time == "23:55:00" && isOpen == false)
{
    //same code as above
}

这也不起作用。
 
Last edited:

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,159
地点
挪威
编程经验
10+

颂歌

众所周知的成员
加入
2020年12月11日
消息
122
编程经验
Beginner
我没有想设置不同的时间 - 但是当我尝试过......它没有工作。

我变了"23:55:00" to "17:47:00"(并且到大约17:59:00在将它重置为23:55:00更改我的PC时钟测试并实现它确实有效 - 并且它只是在17:55:00之前跳过它....那是完全相同的代码,只是改变这两个数字 - 我绝对不知道为什么它会这样做....

我也改变了我的电脑时钟"18:03:00"并测试它,只是在使用更改时钟方法的情况下创建了应用程序看到的不同结果,但不会正常看到....不忽视它 - 将其恢复到23:55:00 - 是的。这只是奇怪的。

对于记录,我还没有添加其他代码....

现在望着自动集会 - 我想我会努力实现它 - 因为我的计时器处于不同的方法,它将是一个痛苦的画作 - 但我想我可以解决它。

谢谢你的抬头。
 
Last edited:

颂歌

众所周知的成员
加入
2020年12月11日
消息
122
编程经验
Beginner
对于那些关心的人来说,我有点跑去,并将if语句更改为时钟文本....没有帮助邮件框创建为9,但它确实意味着我可以调整时间和它会认出它 - 所以使测试更容易。

还从前一个线程中提出了JMC的建议,并在新项目中建立了代码 - 它在哪里工作....不确定它为什么它在那里工作但不在这里......但无论它帮助我都有所需的代码......

C#:
if (clock1.Text == "00:25:00")
            {
                t.Stop();
                if (File.Exists(EX1))
                {
                    MessageBox.Show("At 11:59pm the application will delete ALL data files.");
                }
                else
                {
                    MessageBox.Show("At 11:59pm the application will create an Excel for today's shift, it will delete old data files and create new data files on completion.  None of your work will be lost.");
                }
                t.Start();
            }

这是我给定时器的真正好名字......

它确实停止了时钟,直到个体按下确定 - 但在本申请中并不重要。
 
最佳 底部