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

时间:2010-08-07 04:25:41

标签: c# winforms

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

6 个答案:

答案 0 :(得分:50)

“只需​​将MaxSelectionCount设置为1,这样用户就无法选择超过一天。然后在SelectionRange.Start.ToString()中。没有任何内容可以显示只有一天的选择。” - Justin Etheredge

来自here

答案 1 :(得分:9)

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

monthCalendar1.SelectionRange.Start.ToShortDateString() 

您只能从1/25/2014控件中获取日期(例如MonthCalendar)。

与...相反

monthCalendar1.SelectionRange.Start.ToString()

//The OUTPUT will be (e.g. 1/25/2014 12:00:00 AM)

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

答案 2 :(得分:1)

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

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;
}

答案 3 :(得分:1)

使用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;

答案 4 :(得分:0)

如果您只想通过以下方式转换它会很有帮助:

String myCalendar = monthCalendar1.SelectionRange.Start.ToShortDateString() 

但是如果您想获得格式化的输出,您可以改为:

String myCalendar = monthCalendar1.SelectionRange.Start.ToString("yyyy-MM-dd")

使用年和日作为小写字母,使用月份作为大写字母很重要,否则它会返回错误的格式,例如,如果您这样做:

String myCalendar = monthCalendar1.SelectionRange.Start.ToString("YYYY-MM-DD")

它将返回:YYYY-07-DD(如果原始日期的月份是七月)

答案 5 :(得分:-2)