我正在尝试根据日期时间选择器设置的时间设置计时器的勾选警报。但是我根本得不到勾号警告。
if (dateTimePicker1.Value >= DateTime.Now)
{
sendOrder.Interval =(int) (dateTimePicker1.Value.Ticks-DateTime.Now.Ticks);
sendOrder.Enabled = true;
}
在上面的代码中,我根据datetimepicker的时间差 - 当前时间设置了滴答时间。我在这个问题上做错了什么?
答案 0 :(得分:3)
单个刻度表示一百纳秒或一百万分之一秒。一毫秒内有10,000个滴答。
时间,以毫秒为单位
所以你的计时器正在开火;间隔刚刚减少10,000倍。
您可以使用TimeSpan.TotalMilliseconds Property来获取两个DateTime值之间的差异(以毫秒为单位),而不是使用刻度线进行操作:
sendOrder.Interval = (dateTimePicker1.Value - DateTime.Now).TotalMilliseconds;
答案 1 :(得分:3)
假设您使用System.Timers.Timer
,Interval以毫秒为单位,而您指定的是滴答。在1毫秒内有10,000个滴答。
请改为尝试:
sendOrder.Interval = (int)(dateTimePicker1.Value.Ticks - DateTime.Now.Ticks) / 10000;
答案 2 :(得分:2)
Ticks
的间隔为100纳秒。一毫秒内有10,000个刻度。 Interval
以毫秒为单位。所以这显然是一个错误。