Back to Devexpress

CustomDrawObjectEventArgs.Handled Property

windowsforms-devexpress-dot-xtrascheduler-dot-customdrawobjecteventargs-7d0ae182.md

latest7.6 KB
Original Source

CustomDrawObjectEventArgs.Handled Property

Gets or sets whether an event was handled. If it was handled, the default actions are not required.

Namespace : DevExpress.XtraScheduler

Assembly : DevExpress.XtraScheduler.v25.2.dll

NuGet Package : DevExpress.Win.Scheduler

Declaration

csharp
public virtual bool Handled { get; set; }
vb
Public Overridable Property Handled As Boolean

Property Value

TypeDescription
Boolean

true if default painting isn’t required; otherwise, false.

|

Remarks

The events used to custom paint various elements of a scheduler control fire before the elements are painted in their default manner. If the event parameter’s Handled property is set to true within a handler, default painting will not be performed. Otherwise, any custom painting performed within an event handler will be overridden by the scheduler control’s standard drawing routines.

You can set the Handled to true , then call the CustomDrawObjectEventArgs.DrawDefault method in the handler code to render the element using the default drawing mechanism, and then paint custom drawings over default graphics.

Example

The following sample code handles the SchedulerControl.CustomDrawAppointment event to manually paint appointments. The image below shows the result.

View Example

csharp
using DevExpress.XtraScheduler;
using DevExpress.XtraScheduler.Drawing;
using System.Drawing.Drawing2D;
private void schedulerControl1_CustomDrawAppointment(object sender, CustomDrawObjectEventArgs e) {
    TimeLineAppointmentViewInfo tlvi = e.ObjectInfo as TimeLineAppointmentViewInfo;
    // This code works only for the Timeline View.
    if(tlvi != null) {
        Rectangle r = e.Bounds;
        r.Offset(3, 3);
        string[] s = tlvi.Appointment.Subject.Split(' ');

        for(int i = 0; i < s.Length; i++) {
            using(var foreBrush = new SolidBrush(colorArray[i]))
                e.Cache.DrawString(s[i], tlvi.Appearance.Font, foreBrush,
r, StringFormat.GenericDefault);
            SizeF shift = e.Cache.CalcTextSize(s[i] + " ", tlvi.Appearance.Font);
            r.X += (int)shift.Width;
        }
        e.Handled = true;
    }
}
vb
Imports DevExpress.XtraScheduler
Imports DevExpress.XtraScheduler.Drawing
Imports System.Drawing.Drawing2D
Private Sub schedulerControl1_CustomDrawAppointment(ByVal sender As Object, ByVal e As CustomDrawObjectEventArgs) Handles schedulerControl1.CustomDrawAppointment
    Dim tlvi As TimeLineAppointmentViewInfo = TryCast(e.ObjectInfo, TimeLineAppointmentViewInfo)
    ' This code works only for the Timeline View.
    If tlvi IsNot Nothing Then
        Dim r As Rectangle = e.Bounds
        r.Offset(3, 3)
        Dim s() As String = tlvi.Appointment.Subject.Split(" "c)

        For i As Integer = 0 To s.Length - 1
            Using foreBrush = New SolidBrush(colorArray(i))
                e.Cache.DrawString(s(i), tlvi.Appearance.Font, foreBrush, r, StringFormat.GenericDefault)
            End Using
            Dim shift As SizeF = e.Cache.CalcTextSize(s(i) & " ", tlvi.Appearance.Font)
            r.X += CInt(shift.Width)
        Next i
        e.Handled = True
    End If
End Sub

The following code snippets (auto-collected from DevExpress Examples) contain references to the Handled property.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

winforms-scheduler-customize-appointment-flyout/CS/CustomAppointmentFlyoutExample/Form1.cs#L42

csharp
void OnSchedulerControlCustomDrawAppointmentFlyoutSubject(object sender, CustomDrawAppointmentFlyoutSubjectEventArgs e) {
    e.Handled = true;
    CustomDrawAppointmentFlyoutSubject(e);

winforms-scheduler-country-specific-work-week-holidays/CS/Form1.cs#L79

csharp
e.Cache.DrawImage(img, imgRect);
    e.Handled = true;
}

winforms-scheduler-custom-draw-appointments/CS/CustomDrawDemo/Form1.cs#L141

csharp
e.Cache.DrawRectangle(Pens.Blue, r);
    e.Handled = true;
}

winforms-scheduler-resolve-appointment-conflicts/CS/DXApplication1/Form1.cs#L80

csharp
e.Cache.FillRectangle(_hatchBrush, rect);
    e.Handled = true;
}

winforms-scheduler-customize-appointment-flyout/VB/CustomAppointmentFlyoutExample/Form1.vb#L45

vb
Private Sub OnSchedulerControlCustomDrawAppointmentFlyoutSubject(ByVal sender As Object, ByVal e As CustomDrawAppointmentFlyoutSubjectEventArgs)
    e.Handled = True
    CustomDrawAppointmentFlyoutSubject(e)

winforms-scheduler-country-specific-work-week-holidays/VB/Form1.vb#L65

vb
e.Cache.DrawImage(img, imgRect)
    e.Handled = True
End If

winforms-scheduler-custom-draw-appointments/VB/CustomDrawDemo/Form1.vb#L142

vb
e.Graphics.DrawRectangle(Pens.Blue, r)
    e.Handled = True
End If

winforms-scheduler-resolve-appointment-conflicts/VB/DXApplication1/Form1.vb#L71

vb
e.Handled = True
End If

See Also

CustomDrawObjectEventArgs Class

CustomDrawObjectEventArgs Members

DevExpress.XtraScheduler Namespace