如何使用datetimepicker在visual studio中创建倒数计时器

时间:2016-02-02 14:25:35

标签: c# visual-studio visual-studio-2013 datetimepicker

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

的点击事件中的代码
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. 我是视觉工作室的新手,这是我的第一个项目。

1 个答案:

答案 0 :(得分:1)

问题很可能是这个测试:

while (time!=timer)

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

while (time < endTime)

有了这个,您就可以摆脱变量a并只显示&#34; A&#34;一旦循环结束。

说完这一切之后,MessageBox.Show会阻止循环直到你解雇它,所以你真的需要找到一些其他方式来表明你还在循环中。