winforms 如何在C#中取得MonthCalendar控件的选取日期

nsc4cvqm  于 2022-11-30  发布在  C#
关注(0)|答案(7)|浏览(434)

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

n53p2ov0

n53p2ov01#

“只需将MaxSelectionCount设置为1,这样用户就不能选择多天。然后在SelectionRange.Start.ToString()中,没有任何内容可用于显示仅选择一天。”- Justin Etheredge
here开始。

hwamh0ep

hwamh0ep2#

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

monthCalendar1.SelectionRange.Start.ToShortDateString()

您将只能从MonthCalendar控件获得日期(例如1/25/2014)。
它的反面是:

monthCalendar1.SelectionRange.Start.ToString()

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

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

xoshrz7s

xoshrz7s3#

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

ntjbwcob4#

对于那些还在尝试的人来说,这个链接也帮了我的忙;它只是把所有的东西放在一起:
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;
}
qni6mghb

qni6mghb5#

如果您只想通过以下方式进行转换,这将很有帮助:

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(如果原始日期的月份是七月)

klr1opcd

klr1opcd6#

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

相关问题