所以当下拉菜单出现时,我正拼命地在combobox
中添加30分钟的时间间隔:
8:00 8:30 9:00 等等。我写了这段代码:
public FormNewAppointment()
{
InitializeComponent();
cmbBoxLength.Items.AddRange(new object[] { 30, 60, 90 });
for (DateTime tm = time.AddHours(8); tm < time.AddHours(22); tm = time.AddMinutes(30))
{
cmbBoxStart.Items.Add(tm.ToShortTimeString());
}
}
我尝试运行该程序...它崩溃所以我尝试调试它...我在循环中放置一个断点,因为问题集中在那里..而且令我惊讶的是,循环无限延续...第一个值是正确的早上8点,但不管我运行了多少次,只有下午12点30分已插入价值...我在下方有一张图片,以显示我在说什么......
当然,典型的问题出现了...我做错了什么?语法看起来不错,但我错过了一些东西......我被困了!!
答案 0 :(得分:3)
尝试将代码更改为:
for (DateTime tm = time.AddHours(8); tm < time.AddHours(22); tm = tm.AddMinutes(30))
{
cmbBoxStart.Items.Add(tm.ToShortTimeString());
}
仅tm.AddMinutes(30))
而不是tm = time.AddMinutes(30)
答案 1 :(得分:2)
您使用原始time
变量的每个循环。这不会改变所以总是一样的。
public FormNewAppointment()
{
InitializeComponent();
cmbBoxLength.Items.AddRange(new object[] { 30, 60, 90 });
DateTime EndTime = time.AddHours(22);
for (time = time.AddHours(8); time < EndTime; time = time.AddMinutes(30))
{
cmbBoxStart.Items.Add(time.ToShortTimeString());
}
}