Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 滥发讯息#_C#_Winforms - Fatal编程技术网

C# 滥发讯息#

C# 滥发讯息#,c#,winforms,C#,Winforms,我正在制作一个在后台运行的程序,在一天中的特定时间,它会弹出一个窗口,上面有锻炼的说明。(适用于我工作的上班族) 问题是:当练习指导的时候,我想弹出一个消息框,问你是否准备好了。 我在一个“if(blabla==true)”中有这个消息框代码,所以它一直在发送垃圾邮件 我如何避免这种情况?我看不到其他地方可以放留言盒 基本上是: if (DateTime.Now.ToString("HH:mm") == "09:00") { progress = true; } if(progress

我正在制作一个在后台运行的程序,在一天中的特定时间,它会弹出一个窗口,上面有锻炼的说明。(适用于我工作的上班族)

问题是:当练习指导的时候,我想弹出一个消息框,问你是否准备好了。 我在一个“if(blabla==true)”中有这个消息框代码,所以它一直在发送垃圾邮件

我如何避免这种情况?我看不到其他地方可以放留言盒

基本上是:

if (DateTime.Now.ToString("HH:mm") == "09:00")
{
    progress = true;
}

if(progress == true)
{
    DialogResult dialogResult = MessageBox.Show("Start?", "Bla Bla",      MessageBoxButtons.YesNo);
if(dialogResult == DialogResult.Yes)
{
    exercise.Action();
}
}
有没有办法让对话框在同一个地方出现一次?会让我的项目更容易

谢谢

这不是一个C#或WinForms问题,而是一个算法问题。首先尝试设计算法,然后将其翻译成您选择的编程语言

以下情况如何(伪代码,假设您想每一小时打断一次您的员工):

在只显示一次消息框后,这将从9增加到10


事实上,还有另一种选择:您试图实现的是一个调度器,一个在特定时间执行特定操作的程序。Windows已包含一个调度程序,即

因此,不必重新发明轮子,您可以使您的程序如下所示:

show message box
if answer = yes
    exercise

将其编译为exe,并将Windows任务计划程序设置为每小时运行一次(或用户希望的任何频率)。

显示更多代码。你在哪里调用这个方法我想你需要有
(DateTime.Now.ToString(“HH:mm:ss”)==“09:00:00”)
作为条件,从9点到10点的一个小时内,代码在void中\u正在进行(object sender,EventArgs e)私有void Form1\u Load\u 1(object sender,EventArgs e){u Timer.Interval=1000;_Timer.Tick+=neweventhandler(_continuous);_Timer.Start()}正如你所看到的,它每秒钟都在更新。对不起,在注释中间隔似乎不起作用。这是一个每秒都会触发的事件。你是否尝试过先更改if条件,因为我已经声明了Loop forever?还有
Timer
?它们是否已经被弃用了?
show message box
if answer = yes
    exercise