protected virtual void OnResolveAppointments(ResolveAppointmentsEventArgs args) { System.Diagnostics.Debug.WriteLine("Resolve app"); if (ResolveAppointments != null) { ResolveAppointments(this, args); } this.allDayEventsHeaderHeight = 0; // cache resolved appointments in hashtable by days. cachedAppointments.Clear(); if ((selectedAppointmentIsNew) && (selectedAppointment != null)) { if ((selectedAppointment.StartDate > args.StartDate) && (selectedAppointment.StartDate < args.EndDate)) { args.Appointments.Add(selectedAppointment); } } foreach (Appointment appointment in args.Appointments) { int key = -1; AppointmentList list; if (appointment.StartDate.Day == appointment.EndDate.Day) { key = appointment.StartDate.Day; } else { // use -1 for exceeding one more than day key = -1; /* ALL DAY EVENTS IS NOT COMPLETE * this.allDayEventsHeaderHeight += horizontalAppointmentHeight; */ } list = (AppointmentList)cachedAppointments[key]; if (list == null) { list = new AppointmentList(); cachedAppointments[key] = list; } list.Add(appointment); } }
private void dayView1_ResolveAppointments(object sender, ResolveAppointmentsEventArgs args) { List <Appointment> m_Apps = new List <Appointment>(); foreach (Appointment m_App in m_Appointments) { if ((m_App.StartDate >= args.StartDate) && (m_App.StartDate <= args.EndDate)) { m_Apps.Add(m_App); } } args.Appointments = m_Apps; }
protected override void OnPaint(PaintEventArgs e) { // resolve appointments on visible date range. ResolveAppointmentsEventArgs args = new ResolveAppointmentsEventArgs(this.StartDate, this.StartDate.AddDays(daysToShow)); OnResolveAppointments(args); using (SolidBrush backBrush = new SolidBrush(renderer.BackColor)) e.Graphics.FillRectangle(backBrush, this.ClientRectangle); e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; // Calculate visible rectangle Rectangle rectangle = new Rectangle(0, 0, this.Width - scrollbar.Width, this.Height); Rectangle hourLabelRectangle = rectangle; hourLabelRectangle.Y += this.HeaderHeight; DrawHourLabels(e, hourLabelRectangle); Rectangle daysRectangle = rectangle; daysRectangle.X += hourLabelWidth; daysRectangle.Y += this.HeaderHeight; daysRectangle.Width -= hourLabelWidth; if (e.ClipRectangle.IntersectsWith(daysRectangle)) { DrawDays(e, daysRectangle); } Rectangle headerRectangle = rectangle; headerRectangle.X += hourLabelWidth; headerRectangle.Width -= hourLabelWidth; headerRectangle.Height = dayHeadersHeight; if (e.ClipRectangle.IntersectsWith(headerRectangle)) { DrawDayHeaders(e, headerRectangle); } }