【问题标题】:Adding time with intervals in ComboBox in C#在 C# 中的 ComboBox 中添加时间间隔
【发布时间】:2016-05-06 10:56:27
【问题描述】:

所以当下拉菜单如下所示时,我拼命尝试在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.00 a.m. 但之后无论我运行多少次,只有 12.30p.m.值已插入...我在下面有一张图片来显示我在说什么...

当然,典型的问题出现了......我做错了什么?语法对我来说看起来不错,但我错过了一些东西..我被卡住了!!

【问题讨论】:

    标签: c# datetime time combobox


    【解决方案1】:

    尝试将您的代码更改为:

     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)

    【讨论】:

      【解决方案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());
          }
      }
      

      【讨论】:

      • 这个解决方案也有效!!简单的错误,容易错过,如果头晕很难找到!谢谢!!
      猜你喜欢
      • 1970-01-01
      • 2019-07-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多