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

ConsKa

知名会员
已加入
2020年12月11日
留言内容
85
编程经验
Beginner
我有一个消息框显示,我想在给定的时间弹出。

我已经在下面设置了代码,但是它触发了9次,并且得到9个消息框-都一样。我认为这是由于滴答在第二个:00上出现了9个滴答(假设我的时钟间隔设置为100)-因此我尝试在间隔时间内工作

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

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

那是行不通的,所以尝试了一次bool,一旦出现消息框,我就可以更改它,但是那也不行。

可以想象,尝试使用断点进行调试非常困难,我每次都必须更改PC时钟,当然,在断点停止的那一刻,下一个滴答声是几秒钟后的,并且完全绕开了代码现在不再是23:55:00 ...

我只是想知道是否有人对这种类型的东西有一个巧妙的解决方法,可以触发消息框,只需单击一次即可。

布尔的代码在下面,但正如我所说,它不起作用。

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:

ConsKa

知名会员
已加入
2020年12月11日
留言内容
85
编程经验
Beginner
我本来不打算设置其他时间-但是当我尝试使用它时...没有用。

我变了"23:55:00" to "17:47:00"(直到大约17:59:00,然后将其重置为23:55:00,然后更改我的PC时钟进行测试并意识到它确实可以正常工作-例如,它只是在17:55:00跳过它...)。那是完全相同的代码,只是更改了这两个数字-我完全不知道为什么会这么做。

我也将PC时钟更改为"18:03:00"并进行了测试,以防万一使用更改时钟方法创建了应用看到的不同结果,但正常情况下看不到...。不,只是忽略了它-将其更改回23:55:00-是的。那太奇怪了。

为了记录,我还没有添加其他代码。

现在来看一下AutoRest属性-我想我会为实现它而做些努力-因为我的计时器采用的是不同的方法,使用它会很痛苦-但我认为我可以解决这个问题。

感谢您的注意。
 
Last edited:

ConsKa

知名会员
已加入
2020年12月11日
留言内容
85
编程经验
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();
            }

这不是我给计时器的好名字...

它不会停止计时,直到个人按ok为止-但这在此应用程序中并不重要。
 
最佳 底部