如何在C#(窗体形式)中获取MonthCalendar控件的选定日期
答案 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
将获得Start
和End
的日期。
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)