C1Scheduler for Winforms has been a popular control since the day it was introduced in the ComponentOne Winforms suite. With lots of user friendly features, it has successfully able to simulate the Microsoft Office Styling Scheduling functionalities for its users.

One of the most popular feature for the users has been the ability to customize the Appointment appearance. This can be done with the help of the BeforeAppointmentFormat event which gives the flexibility to change the Appointment text, icons, backcolor. You can read more on this from this given Documentation link.

In this blog, using this feature, we will implement a small custom requirement wherein user may want to highlight the currently selected Appointment.
See the following code snippet for the implementation.


Private Sub C1Schedule1_BeforeAppointmentFormat(ByVal sender As Object, ByVal e As C1.Win.C1Schedule.BeforeAppointmentFormatEventArgs) Handles C1Schedule1.BeforeAppointmentFormat
   If C1Schedule1.SelectedAppointments.Contains(e.Appointment) Then
       e.BackColor = Color.Blue
   Else
       e.BackColor = e.Appointment.Label.Color
   End If
End Sub

Private Sub C1Schedule1_SelectedAppointmentsChanged(ByVal sender As Object, ByVal e As C1.Win.C1Schedule.SelectedAppointmentsChangedEventArgs) Handles C1Schedule1.SelectedAppointmentsChanged
   For Each app As Appointment In C1Schedule1.DataStorage.AppointmentStorage.Appointments
       If C1Schedule1.SelectedAppointments.Contains(app) Then
          app.Tag = "change"
       Else
          app.Tag = Nothing
       End If
   Next
End Sub




Download the attached samples for complete implementation.
Download C# Sample
Download VB.Net Sample