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;
}
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
string clickeddate = monthCalendar1.SelectionRange.Start.ToString("dddd, dd MMM yyyy");
richTextBox.AppendText(clickeddate); //or whatever you decide to do with it.
}
7条答案
按热度按时间n53p2ov01#
“只需将
MaxSelectionCount
设置为1,这样用户就不能选择多天。然后在SelectionRange.Start.ToString()
中,没有任何内容可用于显示仅选择一天。”- Justin Etheredge从here开始。
hwamh0ep2#
我只是注意到,如果你这样做:
您将只能从
MonthCalendar
控件获得日期(例如1/25/2014
)。它的反面是:
因为这些
MonthCalendar
属性的类型为DateTime。请参阅msdn和可用于转换为String表示形式的方法。此外,this还可能有助于在适用的情况下从String转换为DateTime对象。xoshrz7s3#
使用
SelectionRange
,您将获得Start
和End
日期。如果要更新可选择的最大天数,请设置
MaxSelectionCount
属性。默认值为7。ntjbwcob4#
对于那些还在尝试的人来说,这个链接也帮了我的忙;它只是把所有的东西放在一起:
http://dotnetslackers.com/VB_NET/re-36138_How_To_Get_Selected_Date_from_MonthCalendar_control.aspx
qni6mghb5#
如果您只想通过以下方式进行转换,这将很有帮助:
但是,如果要获得格式化的输出,可以改为:
使用年和日作为小写字母,使用月作为大写字母,这一点很重要,否则它将返回错误的格式,例如,如果您这样做:
它将返回:
YYYY-07-DD
(如果原始日期的月份是七月)klr1opcd6#
r3i60tvu7#
SelectionRange property