繁体   English   中英

如何使用datetimepicker在Visual Studio中创建倒数计时器

[英]how to create a countdown timer in visual studio using datetimepicker

对于某些人来说,这听起来可能很愚蠢,但请多多包涵。 我正在尝试创建一个具有2 datetimepicker控件的Windows窗体应用程序。 它们旨在设置时间范围(日期选择已禁用)。 用户设置范围并单击确认按钮后,程序需要显示“ A”直到达到极限,并且当计时器到期时,显示“ B”。 这是我现在在确认按钮的click事件中的代码

int a=0;
TimeSpan time = DateTime.Now.TimeOfDay;            
TimeSpan timer = dateTimePicker2.Value - dateTimePicker1.Value;
MessageBox.Show("Timer set. Device will shutdown in " + timer);
timer = timer + time;            
while (time!=timer)
{
    time = DateTime.Now.TimeOfDay; ;
    if(a==0)
    {
        MessageBox.Show("B");
        a = 1;
    };               
};
if (a == 1)
{
    MessageBox.Show("A");
    a = 0;
}

我这段代码的逻辑是:首先找到两个时间范围之间的差异。 然后将此差异添加到当前系统时间,并进行while循环以检查是否已达到该时间。如果未显示B,则在当前系统时间到达该时间时,显示A。 。 运行此代码时,它仅显示B而从不显示A。我是Visual Studio的新手,这是我的第一个项目。

问题可能是此测试:

while (time!=timer)

当前时间很可能永远不会完全等于您选择的第二次时间。 您应该将其更改为:

while (time < endTime)

有了它,您将可以摆脱变量a并在循环结束后仅显示“ A”。

说完这些, MessageBox.Show将阻塞循环,直到您将其关闭为止,因此,您确实需要找到其他方法来表明您仍在循环中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM