我添加了日历表单,它不会让我选择2个日期。它将每次点击分配给开始日期,所以当我尝试这个时,它总是告诉我差异是1,开始日期总是变成我下次点击的是什么?
是否可以将其默认为开始日期的今天日期,然后让其他所有点击确定结束日期?当我尝试在datechanged
事件处理程序中指定今天的日期时,它不会让我更改月份,因为它一直关注startdate
?
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
numDays = Convert.ToInt32((monthCalendar1.SelectionEnd - monthCalendar1.SelectionStart).TotalDays);
MessageBox.Show("num " + numDays);
}
答案 0 :(得分:0)
// Sets the Month Calenders Min & Max to days in current month.
DateTime dt = DateTime.Today;
DateTime firstDay = new DateTime(dt.Year, dt.Month, 1, 0, 0, 0);
DateTime lastDay = new DateTime(dt.Year, dt.Month, DateTime.DaysInMonth(dt.Year, dt.Month));
dateMonthCalender.MinDate = firstDay;
dateMonthCalender.MaxDate = lastDay;
以上内容将min和max设置为当月的天数
如果你想将min设置为今天
dateMonthCalender.MinDate = DateTime.Now;
希望有所帮助..
答案 1 :(得分:0)
好的,所以宣布两个整数并分配一个到选定日期,另一个分配到今天并创建自己的方法
int selectedDay;
int todayValue;
DateTime firstDay = new DateTime(dt.Year, dt.Month, 1, 0, 0, 0);
DateTime today = DateTime.Today;
string todayShort = today.ToShortDateString();
string thisDay = todayShort.Substring(0, 2);
todayValue = Convert.ToInt32(thisDay);
private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
{
// Shorten date format to day and assign it.
string dMC = dateMonthCalender.SelectionRange.Start.ToShortDateString();
string takeDMCDay = dMC.Substring(0, 2);
selectedDay = Convert.ToInt32(takeDay);
}