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