internal MonthViewMonth(MonthView monthView, DateTime date)
        {
            if (date.Day != 1)
            {
                date = new DateTime(date.Year, date.Month, 1);
            }


            _monthview = monthView;
            _date      = date;

            int preDays = (new int[] { 0, 1, 2, 3, 4, 5, 6 })[(int)date.DayOfWeek] - (int)MonthView.FirstDayOfWeek;

            days = new MonthViewDay[6 * 7];
            DateTime curDate = date.AddDays(-preDays);

            DayHeaders = new string[7];

            for (int i = 0; i < days.Length; i++)
            {
                days[i] = new MonthViewDay(this, curDate);

                if (i < 7)
                {
                    DayHeaders[i] = curDate.ToString(MonthView.DayNamesFormat).Substring(0, MonthView.DayNamesLength);
                }

                curDate = curDate.AddDays(1);
            }
        }
Пример #2
0
        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);

            Focus();

            _mouseDown = true;

            MonthViewDay day = HitTest(e.Location);

            if (day != null)
            {
                switch (SelectionMode)
                {
                case MonthViewSelection.Manual:
                case MonthViewSelection.Day:
                    SelectionEnd = _selectionStart = day.Date;
                    break;

                case MonthViewSelection.WorkWeek:
                    SelectWorkWeek(day.Date);
                    break;

                case MonthViewSelection.Week:
                    SelectWeek(day.Date);
                    break;

                case MonthViewSelection.Month:
                    SelectMonth(day.Date);
                    break;
                }
            }

            if (ForwardButtonSelected)
            {
                GoForward();
            }
            else if (BackwardButtonSelected)
            {
                GoBackward();
            }
        }
Пример #3
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);

            if (_mouseDown)
            {
                MonthViewDay day = HitTest(e.Location);

                if (day != null && day != _lastHitted)
                {
                    switch (SelectionMode)
                    {
                    case MonthViewSelection.Manual:
                        if (day.Date > SelectionStart)
                        {
                            SelectionEnd = day.Date;
                        }
                        else
                        {
                            SelectionStart = day.Date;
                        }
                        break;

                    case MonthViewSelection.Day:
                        SelectionEnd = _selectionStart = day.Date;
                        break;

                    case MonthViewSelection.WorkWeek:
                        SelectWorkWeek(day.Date);
                        break;

                    case MonthViewSelection.Week:
                        SelectWeek(day.Date);
                        break;

                    case MonthViewSelection.Month:
                        SelectMonth(day.Date);
                        break;
                    }

                    _lastHitted = day;
                }
            }

            if (ForwardButtonBounds.Contains(e.Location))
            {
                SetForwardButtonSelected(true);
            }
            else if (ForwardButtonSelected)
            {
                SetForwardButtonSelected(false);
            }

            if (BackwardButtonBounds.Contains(e.Location))
            {
                SetBackwardButtonSelected(true);
            }
            else if (BackwardButtonSelected)
            {
                SetBackwardButtonSelected(false);
            }
        }