private void UpdateMonths() { var gapping = 2; var calendarsX = Convert.ToInt32(Math.Max(Math.Floor((double)ClientSize.Width / (double)(MonthSize.Width + gapping)), 1.0)); var calendarsY = Convert.ToInt32(Math.Max( Math.Floor((double)ClientSize.Height / (double)(MonthSize.Height + gapping)), 1.0)); var calendars = calendarsX * calendarsY; var monthsWidth = (calendarsX * MonthSize.Width) + (calendarsX - 1) * gapping; var monthsHeight = (calendarsY * MonthSize.Height) + (calendarsY - 1) * gapping; var startX = (ClientSize.Width - monthsWidth) / 2; var startY = (ClientSize.Height - monthsHeight) / 2; var curX = startX; var curY = startY; _forwardMonthIndex = calendarsX - 1; _months = new MonthViewMonth[calendars]; for (var i = 0; i < Months.Length; i++) { Months[i] = new MonthViewMonth(this, ViewStart.AddMonths(i)); Months[i].SetLocation(new Point(curX, curY)); curX += gapping + MonthSize.Width; if ((i + 1) % calendarsX == 0) { curX = startX; curY += gapping + MonthSize.Height; } } var first = Months[0]; var last = Months[_forwardMonthIndex]; SetBackwardButtonBounds(new Rectangle(first.Bounds.Left + ItemPadding.Left, first.Bounds.Top + ItemPadding.Top, DaySize.Height - ItemPadding.Horizontal, DaySize.Height - ItemPadding.Vertical)); SetForwardButtonBounds(new Rectangle(first.Bounds.Right - ItemPadding.Right - BackwardButtonBounds.Width, first.Bounds.Top + ItemPadding.Top, BackwardButtonBounds.Width, BackwardButtonBounds.Height)); }
/// <summary> /// Moves the view one month backward /// </summary> public void GoBackward() { ViewStart = ViewStart.AddMonths(-1); }
/// <summary> /// Moves the view one month forward /// </summary> public void GoForward() { ViewStart = ViewStart.AddMonths(1); }