如何在C#中获取MonthCalendar控件的选定日期

如何在C#中获取MonthCalendar控件的选定日期(窗体forms)

“只需将MaxSelectionCount设置为1,这样用户就不能选择超过一天。然后在SelectionRange.Start.ToString() 。没有任何东西可以显示只有一天的选择。” – Justin Etheredge

从这里开始 。

我刚注意到,如果你这样做:

 monthCalendar1.SelectionRange.Start.ToShortDateString() 

您将只从MonthCalendar控件获得日期(例如,1/25/ 1/25/2014 )。

它与:相反:

 monthCalendar1.SelectionRange.Start.ToString() //The OUTPUT will be (eg 1/25/2014 12:00:00 AM) 

因为这些MonthCalendar属性的类型为DateTime 。 请参阅msdn和可用于转换为String表示的方法。 此外, 这可能有助于在适用的情况下从String转换为DateTime对象。

对于那些仍在尝试的人来说,这个链接也帮助了我; 它只是把它们放在一起:

http://dotnetslackers.com/VB_NET/re-36138_How_To_Get_Selected_Date_from_MonthCalendar_control.aspx

 private void MonthCalendar1_DateChanged(object sender, System.Windows.Forms.DateRangeEventArgs e) { //Display the dates for selected range Label1.Text = "Dates Selected from :" + (MonthCalendar1.SelectionRange.Start() + " to " + MonthCalendar1.SelectionRange.End); //To display single selected of date //MonthCalendar1.MaxSelectionCount = 1; //To display single selected of date use MonthCalendar1.SelectionRange.Start/ MonthCalendarSelectionRange.End Label2.Text = "Date Selected :" + MonthCalendar1.SelectionRange.Start; } 

使用SelectionRange您将获得StartEnd日期。

 private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e) { var startDate = monthCalendar1.SelectionRange.Start.ToString("dd MMM yyyy"); var endDate = monthCalendar1.SelectionRange.End.ToString("dd MMM yyyy"); } 

如果要更新可以选择的最大天数,请设置MaxSelectionCount属性。 默认值为7。

 // Only allow 21 days to be selected at the same time. monthCalendar1.MaxSelectionCount = 21; 

SelectionRange属性