我正在填写一个带有月份名称的组合框,如下所示:`
var engCulture = new CultureInfo("en-US");
cmbAmCul.Items.AddRange(engCulture.DateTimeFormat.MonthNames);
什么是正确的方法:
答案 0 :(得分:8)
对于第一部分,您可以使用linq查询...
var engCulture = new CultureInfo("en-US");
cmbAmCul.Items.AddRange(from m in engCulture.DateTimeFormat.MonthNames
where !String.IsNullOrEmpty(m)
select m);
DateTimeInfo类支持13个月的日历,这就是发生这种情况的原因。
对于第二部分,我会选择类似......
for (int i = 1; i <= DateTime.DaysInMonth(year, month); i++) {
cmbDay.Items.Add(i.ToString());
}
显然会根据您选择的值填充年/月变量。
答案 1 :(得分:3)
DateTime.DaysInMonth(int year, int month)
的返回值填充您的日期组合框您还可以使用标准控件中的DateTime选择器,还是不适合您?
答案 2 :(得分:0)
您没有指定要构建的内容(ASP.NET或Winforms等),但您可以使用Calendar控件而不是下拉列表来改善用户体验。可能会减少点击次数和更少的代码。