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