出现日历 - 到达日期时启用按钮

时间:2014-11-29 19:19:25

标签: c# switch-statement

我目前正致力于一个小小的降临日历申请 WinForm包含24个按钮,默认情况下处于禁用状态。

现在我需要重新考虑这部分代码。

        do
        {
            switch (_currentDate.ToShortDateString()) // uses NIST time server
            {
                case "01.12.2014":
                {
                    btn1.Enabled = true;
                    break;
                }

                case "02.12.2014":
                {
                    btn2.Enabled = true;
                    break;
                }

                case "03.12.2014":
                {
                    btn3.Enabled = true;
                    break;
                }

                    //committed

                case "24.12.2014":
                {
                    btn24.Enabled = true;
                    break;
                }
            }
            _currentDate = _currentDate.AddDays(-1);
        } while (_currentDate.ToShortDateString() != new DateTime(2014, 11, 30).ToShortDateString());

是否有一种很酷的方法来缩短这段代码?
因为这段代码看起来有点多余。

1 个答案:

答案 0 :(得分:1)

以下是一些提示:

假设你的按钮数组被称为CalenderButtons,12月1日各自的指数为0,第二个指数为1,等等。

如果您只想启用1个按钮,请使用:

CalenderButtons[_currentDate.Day-1].Enabled = true;

如果要启用从第1天到当天的所有按钮:

for (int i=0; i<_currentDate.Day; i++) 
{
   CalenderButtons[i].Enabled = true;
}