В WinForms (3.5) приложение там является формой с управлением monthCalendar.
Календарное управление имеет calendarDimension строки 3 столбца на 1. Это означает, что в настоящее время показывает июнь, июль, август 2010.
Действительно ли возможно иметь календарь для показа апреля, мая, июня 2010 вместо этого? Мой набор данных не имеет никаких будущих дат, таким образом, выбор даты будет для текущих или более старых дат.
Вы можете использовать следующую строку кода для установки свойства MonthCalendar
MaxDate
на текущую дату в событии загрузки формы.
monthCalendar1.MaxDate = DateTime.Now;
Если вы установите MaxDate в MonthCalendar на текущую дату, в месячном календаре будут отображаться только даты - и, таким образом, разрешить выбор - даты на текущую дату или раньше.
Чтобы сдвинуть текущий месяц вправо Я использовал идею Павана, но добавил таймер для сброса MaxDate после открытия в элементе управления календарем. Теперь я могу прокрутить в будущее после загрузки элемента управления.
public partial class Form1 : Form
{
private DateTime _initialDateTime = DateTime.Now;
public Form1()
{
InitializeComponent();
// remember the default MAX date
_initialDateTime = monthCalendar1.MaxDate;
// set max date to NOW to force current month to right side
monthCalendar1.MaxDate = DateTime.Now;
// enable a timer to restore initial default date to enable scrolling into the future
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
Timer timer = sender as Timer;
if (timer != null)
{
// enable scrolling to the future
monthCalendar1.MaxDate = _initialDateTime;
// stop the timer...
timer.Stop();
}
}
}