【发布时间】:2012-02-02 04:35:02
【问题描述】:
date[inc] = [0] = "01/01/2011"
dateTimePicker1.Value = {01/01/2011 00:00:00}
更改辅助日期时间选择器时永远不会满足 if 条件。第一个 datetimepicker 必须更改一次,然后此代码才能工作。在这两种情况下,此代码均由 ValueChanged 触发。
有什么想法吗?
编辑:
int start;
int inc = 0;
while (true)
{
inc++;
if (Convert.ToString(dateTimePicker1.Value.ToShortDateString()) == date[inc])
{
start = inc;
inc = 0;
break;
}
}
=/=
int start;
int inc = 0;
while (true)
{
if (Convert.ToString(dateTimePicker1.Value.ToShortDateString()) == date[inc])
{
start = inc;
inc = 0;
break;
}
inc++;
}
还是很有帮助的cmets,谢谢大家。显然是因为增量错过了第一个日期,导致死循环。
【问题讨论】:
-
根据您的描述(“第一个 datetimepicker 必须更改一次才能使用此代码”),您发布的代码可能与实际问题无关。在运行此循环之前检查第一个 datetimepicker 的值。在第一种情况下,您可能会发现它是意外的(如空字符串)。 ValueChanged 事件仅在选择更改时触发,而不是第一次触发。
-
我可能应该在回答之前问一下,但是您的文化设置是如何设置为短日期格式的?
-
两者运行相同的代码,如上。但是,第二个陷入了无限循环。第一个选择器的值如图所示,直到此循环完成后才使用第二个选择器的日期。啊,我怎么检查这个?
-
等等,为什么一开始就没有明确的终止条件的无限循环?如果
inc超出date数组的末尾会发生什么? -
更重要的是
Convert.ToString(dateTimePicker1.Value.ToShortDateString())的结果是什么?
标签: c# datetime datetimepicker