C# 当维度大于1,1时,指定月历中的第一个月

C# 当维度大于1,1时,指定月历中的第一个月,c#,winforms,date,calendar,monthcalendar,C#,Winforms,Date,Calendar,Monthcalendar,当您一次显示多个月时,是否可以指定在月历中首先显示哪个月 我见过类似的问题,但没有一个得到回答,相反,他们得到了解决手头任务的变通方案。我想要一个简单的“是的,像这样…”或“不,因为…” 我试过了 monthCalendar.TodaysDate monthCalendar.MinDate monthCalendar.MaxDate monthCalendar.SetDate monthCalendar.SelectionStart monthCalend

当您一次显示多个月时,是否可以指定在月历中首先显示哪个月

我见过类似的问题,但没有一个得到回答,相反,他们得到了解决手头任务的变通方案。我想要一个简单的“是的,像这样…”或“不,因为…”

我试过了

monthCalendar.TodaysDate  
monthCalendar.MinDate     
monthCalendar.MaxDate    
monthCalendar.SetDate     
monthCalendar.SelectionStart    
monthCalendar.SelectionEnd
所有这些都不能正确地将保留选定日期的月份移到开头。具有选定日期的月份始终是要显示的最后一个月,这在希望选择未来日期时是不好的

编辑2015年5月29日


似乎只有在尝试将MonthCalendar设置为本年度(2015年)的未来日期时,才会出现此问题。一个很好的示例日期是2015年7月20日

是的,这是可能的。我使用了
SelectionStart
SelectionEnd
的组合

this.monthCalendar1.CalendarDimensions = new System.Drawing.Size(4, 3);
this.monthCalendar1.FirstDayOfWeek = System.Windows.Forms.Day.Monday;
this.monthCalendar1.SelectionStart = new DateTime(1980, 5, 20);
this.monthCalendar1.SelectionEnd = new DateTime(1980, 5, 20);

编辑:实际上,我只需设置
SelectionStart
就可以了,唯一的问题是,默认情况下,它会提前选择到最大选择计数。

很抱歉,这段代码不能一直工作。一旦您尝试将日期设置为当前年份(2015年),问题就会出现。我将编辑该问题,以反映该问题仅与当前年份有关。事实上,只有在您选择未来的日期时才会发生,您可以选择例如2015年1月20日,这样就可以了。我看到的是,它总是希望当前月份是显示的第一个月。谢谢@DrewJordan的关注。而任何超过本月的事情都同样如此。例如:如果使用(3,1)维度选择当前月份后五个月的日期,则其行为仍然相同。即使当前月份未显示。非常奇怪的行为。我很好奇这是否是预期的功能。设置
MinDate
对我来说似乎很好-你用它做了什么?也许可以编辑您的问题并添加一个完整的示例?设置
MinDate
对我所需的应用程序不起作用。他们必须能够从
DateTime.现在
到任何未来日期选择任何日期。因此,仅仅因为我希望日历从当前日期后2个月开始,并不意味着我可以删除这2个月,以便它从正确的位置开始。所以当你在你的问题中说你“尝试”了monthCalendar.MinDate时,你在撒谎?