【问题标题】:How to restrict user to select only current month dates in datetimepicker control?如何限制用户在 datetimepicker 控件中仅选择当前月份日期?
【发布时间】:2015-07-22 20:48:36
【问题描述】:

我希望用户只选择当月的日期我不知道应该在最小和最大日期属性中放置什么。

是否有类似“当前月份”的属性?

【问题讨论】:

  • 您认为应该在MinDateMaxDate 字段中添加什么? MinDate当月的第一天和MaxDate当月的最后一天呢?
  • 如何设置当月第一天的最小值和当月最后一天的最大值?
  • 查看@SonerGonul 的回答。

标签: c# winforms date datetime datetimepicker


【解决方案1】:

由于MinDateMaxDate 属性都采用DateTime,您可以将它们设置为;

DateTimePicker1.MinDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);

DateTimePicker1.MaxDate = (new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1))
                          .AddMonths(1).AddDays(-1);

【讨论】:

  • 这正是我想要正常工作的问题还有 1 个问题,为什么我的所有问题都被评为负数,例如 -1,这真的是我问的愚蠢和愚蠢的问题吗?
  • @ShaikhNomanNasir:不傻——你只是显得懒惰,因为你没有向我们展示你尝试了什么。看起来您只是希望其他人免费为您完成工作。
  • 哦,好的,我现在明白了.. 下次我也会把我一直在努力做的事情写下来,谢谢
  • @ShaikhNomanNasir 我没有投票,但我认为人们对您的问题投了票,因为您可以通过 Google 在几分钟内轻松找到答案。您已经将逻辑构建为 我应该将 MinDate 属性设置为当月的第一天 并且 我应该将 MaxDate 属性设置为当月的最后一天 所以,问题变成了; 我怎样才能得到当月的第一天和最后一天?在几秒钟内搜索,你会找到stackoverflow.com/questions/24245523/…
  • 好吧,那是我的错,实际上我在谷歌上花了足够的时间,但我得到了一些标题,比如第一天和最后一天。我没有检查它们,因为我认为它只会让用户选择第一天和最后一天不是其他天..我不是在争论..我只是想清楚,这样我下次就可以避免我的愚蠢了:)
【解决方案2】:

是的,您可以使用属性 MinDate 和 MaxDate 并设置可以在控件中选择的最小和最大日期。

var currentYear = DateTime.Now.Year;
var currentMonth = DateTime.Now.Month;
int firstDayInCurrentMonth = 1;
int lastDayInCurrentMonth = DateTime.DaysInMonth(currentYear, currentMonth);

dateTimePicker.MinDate = new DateTime(currentYear, currentMonth, firstDayInCurrentMonth);
dateTimePicker.MaxDate = new DateTime(currentYear, currentMonth, lastDayInCurrentMonth);

【讨论】:

  • 这不是您可以限制用户仅选择当前月份的日期的方式。
  • 如果根据您的代码,当前日期是该月的 12 日,用户将无法选择本月的 1 - 11 个日期..
  • @QualityCatalyst 没有其他方法可以使用标准 DateTimePicker 控件阻止其他日期的可见性。如果您知道得更多,现在就显示这些答案之间的区别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多