示例#1
0
        private void SfCalendar1_SelectionChanged(Syncfusion.WinForms.Input.SfCalendar sender, Syncfusion.WinForms.Input.Events.SelectionChangedEventArgs args)
        {
            LockWindowUpdate(this.panel3.Handle);
            this.flowLayoutPanel1.Controls.Clear();
            if (this.sfCalendar1.SelectedDate == null)
            {
                return;
            }

            EventHeaderControl headerControl = new EventHeaderControl();

            headerControl.EventHeaderLabel.Text = "Appointments";
            this.flowLayoutPanel1.Controls.Add(headerControl);

            SelectedDateControl SelectedDateControl = new SelectedDateControl();

            SelectedDateControl.SelectedDateLabel.Text = this.sfCalendar1.SelectedDate.Value.ToString("dddd, dd MMMM yyyy");
            this.flowLayoutPanel1.Controls.Add(SelectedDateControl);

            Appointment appointment = this.Appointment.Find(
                delegate(Appointment bk)
            {
                return((bk.Date.Day == args.NewValue.Value.Date.Day) && (bk.Date.Month == args.NewValue.Value.Date.Month) && (bk.Date.Year == args.NewValue.Value.Date.Year));
            }
                );

            if (appointment != null)
            {
                for (int i = 0; i < appointment.Appointments.Count; i++)
                {
                    AppointmentControl appointmentControl = new AppointmentControl();
                    appointmentControl.DescriptionLbl.Text = appointment.Appointments[i].Description;
                    appointmentControl.TimeLbl.Text        = appointment.Appointments[i].Time;
                    if (args.NewValue.Value.DayOfWeek != DayOfWeek.Sunday)
                    {
                        this.flowLayoutPanel1.Controls.Add(appointmentControl);
                    }
                }
            }

            if (this.flowLayoutPanel1.Controls.Count == 2 || args.NewValue.Value.DayOfWeek == DayOfWeek.Sunday)
            {
                NoAppointmentControl appointmentControl = new NoAppointmentControl();
                appointmentControl.NoAppointmentLabel.Text = "No Appointments";
                this.flowLayoutPanel1.Controls.Add(appointmentControl);
            }
            LockWindowUpdate(IntPtr.Zero);
            this.flowLayoutPanel1.Refresh();
        }
示例#2
0
        /// <summary>
        /// Event helps to customize the Cell.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        void SfCalendar1_DrawCell1(Syncfusion.WinForms.Input.SfCalendar sender, Syncfusion.WinForms.Input.Events.DrawCellEventArgs args)
        {
            if (!args.Value.HasValue)
            {
                return;
            }
            Image image = null;

            if (args.ViewType == Syncfusion.WinForms.Input.Enums.CalendarViewType.Year && args.Value.Value.Month == new DateTime(2018, 12, 25).Month&& args.Value.Value.Year == new DateTime(2018, 12, 25).Year)
            {
                args.Handled = true;
                image        = Properties.Resources.Icon_Christmas_day;
                args.Graphics.DrawImage(image, args.CellBounds);
            }

            if (args.ViewType == Syncfusion.WinForms.Input.Enums.CalendarViewType.Year && args.Value.Value.Month == new DateTime(2018, 02, 14).Month&& args.Value.Value.Year == new DateTime(2018, 02, 14).Year)
            {
                args.Handled = true;
                image        = Properties.Resources.Icon_Valentines_day;
                args.Graphics.DrawImage(image, args.CellBounds);
            }
            if (args.ViewType == Syncfusion.WinForms.Input.Enums.CalendarViewType.Year && args.Value.Value.Month == new DateTime(2018, 07, 1).Month&& args.Value.Value.Year == new DateTime(2018, 07, 1).Year)
            {
                args.Handled = true;
                image        = Properties.Resources.Icon_Doctor_s_Day;
                args.Graphics.DrawImage(image, args.CellBounds);
            }
            if (args.ViewType == Syncfusion.WinForms.Input.Enums.CalendarViewType.Year && args.Value.Value.Month == new DateTime(2018, 09, 25).Month&& args.Value.Value.Year == new DateTime(2018, 09, 25).Year)
            {
                args.Handled = true;
                image        = Properties.Resources.Icon_Engineers_day;
                args.Graphics.DrawImage(image, args.CellBounds);
            }
            if (args.ViewType == Syncfusion.WinForms.Input.Enums.CalendarViewType.Month)
            {
                args.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                int         startPosition = 0;
                Appointment appointment   = this.Appointment.Find(
                    delegate(Appointment bk)
                {
                    return((bk.Date.Day == args.Value.Value.Date.Day) && (bk.Date.Month == args.Value.Value.Date.Month) && (bk.Date.Year == args.Value.Value.Date.Year));
                }
                    );
                if (appointment != null && (args.Value.Value.DayOfWeek != DayOfWeek.Sunday))
                {
                    args.Handled = true;
                    {
                        if (args.IsTrailingDate)
                        {
                            for (int j = 0; j < appointment.Appointments.Count; j++)
                            {
                                args.Graphics.FillRectangle(new SolidBrush(ControlPaint.LightLight(appointment.Appointments[j].AppointmentColor)), new Rectangle((args.CellBounds.X + (args.CellBounds.Width - args.CellBounds.Width / 2)) - (appointment.Appointments.Count * 2) - (appointment.Appointments.Count * 6) - startPosition, (args.CellBounds.Y + (args.CellBounds.Height - 20)), 12, 12));
                                startPosition -= 18;
                            }
                            TextRenderer.DrawText(args.Graphics, args.Value.Value.Day.ToString(), new Font("Segoe UI", this.sfCalendar1.Style.Cell.CellFont.Size), args.CellBounds, ControlPaint.LightLight(Color.IndianRed), TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);
                        }
                        else
                        {
                            for (int j = 0; j < appointment.Appointments.Count; j++)
                            {
                                args.Graphics.FillRectangle(new SolidBrush(appointment.Appointments[j].AppointmentColor), new Rectangle((args.CellBounds.X + (args.CellBounds.Width - args.CellBounds.Width / 2)) - (appointment.Appointments.Count * 2) - (appointment.Appointments.Count * 6) - startPosition, (args.CellBounds.Y + (args.CellBounds.Height - 20)), 12, 12));
                                startPosition -= 18;
                            }
                            TextRenderer.DrawText(args.Graphics, args.Value.Value.Day.ToString(), new Font("Segoe UI", this.sfCalendar1.Style.Cell.CellFont.Size), args.CellBounds, Color.IndianRed, TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);
                        }
                    }
                }
                else
                {
                    args.Handled = true;
                    if (!args.IsTrailingDate)
                    {
                        TextRenderer.DrawText(args.Graphics, args.Value.Value.Day.ToString(), new Font("Segoe UI", this.sfCalendar1.Style.Cell.CellFont.Size), args.CellBounds, this.sfCalendar1.Style.Cell.CellForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);
                    }
                    else
                    {
                        TextRenderer.DrawText(args.Graphics, args.Value.Value.Day.ToString(), new Font("Segoe UI", this.sfCalendar1.Style.Cell.CellFont.Size), args.CellBounds, ControlPaint.LightLight(this.sfCalendar1.Style.Cell.TrailingCellForeColor), TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);
                    }
                }
            }
        }