Back to Devexpress

GanttControl.CustomPrintTimescaleColumn Event

windowsforms-devexpress-dot-xtragantt-dot-ganttcontrol-80e775e4.md

latest8.2 KB
Original Source

GanttControl.CustomPrintTimescaleColumn Event

Fires before a timescale column (the header and the chart area) is printed. Provides access to the drawing surface and allows you to draw the column in a custom way.

Namespace : DevExpress.XtraGantt

Assembly : DevExpress.XtraGantt.v25.2.dll

NuGet Package : DevExpress.Win.Gantt

Declaration

csharp
[DXCategory("Events")]
public event CustomPrintTimescaleColumnEventHandler CustomPrintTimescaleColumn
vb
<DXCategory("Events")>
Public Event CustomPrintTimescaleColumn As CustomPrintTimescaleColumnEventHandler

Event Data

The CustomPrintTimescaleColumn event's data class is CustomPrintTimescaleColumnEventArgs. The following properties provide information specific to this event:

PropertyDescription
CacheProvides access to the drawing surface and a cache of brushes, pens, fonts, and other graphics. Inherited from CustomDrawEventArgs.
ColumnGets the processed column. Inherited from CustomDrawTimescaleColumnEventArgs.
HandledGets or sets whether the event is handled and allows you to prevent the control from drawing the visual element in its default appearance. Inherited from CustomDrawEventArgs.
PrintAreaGets whether the print engine processes the timescale column’s header or chart area.

The event data class exposes the following methods:

MethodDescription
DefaultDraw()Draws the visual element in its default appearance. Inherited from CustomDrawEventArgs.
DrawBackground()Draws the background. Inherited from CustomDrawTimescaleColumnEventArgs.
DrawHeader()Draws the header. Inherited from CustomDrawTimescaleColumnEventArgs.
DrawHtml(HtmlTemplate, DxHtmlPainterContext, Action<DxHtmlPainterArgs>)Paints the required HTML template inside an element that raised this event. The context parameter allows you to assign an object that transfers mouse events to template elements. Inherited from CustomDrawTimescaleColumnEventArgs.
DrawHtml(HtmlTemplate, Action<DxHtmlPainterArgs>)Paints the required HTML template inside an element that raised this event. Inherited from CustomDrawTimescaleColumnEventArgs.
GetPosition(DateTime)Returns the position of the column that corresponds to the specified date. Inherited from CustomDrawTimescaleColumnEventArgs.

Remarks

Before a project is printed or exported, the control raises the following events that allow you to draw visual elements in a custom way:

  • CustomPrintTask—allows you to draw a Gantt bar. This event is equivalent to the CustomDrawTask event, which allows you to customize a Gantt bar when it is displayed onscreen.

  • CustomPrintTaskDependency—allows you to draw a dependency line. This event is equivalent to the CustomDrawTaskDependency event, which allows you to customize a dependency line when it is displayed onscreen.

  • CustomPrintTimescaleColumn—allows you to draw a timescale column (the header, which displays the date, and the chart area). This event is equivalent to the CustomDrawTimescaleColumn event, which allows you to customize a timescale column when it is displayed onscreen.

Example

The code below shows how to highlight specific tasks and dependencies when the project is printed.

Run Demo: Highlight Tasks and Dependencies

csharp
HashSet<int> tasks = new HashSet<int> { 1, 2, 3, 6, 7, 8, 10, 11, 13 };
ganttControl.CustomPrintTask += (sender, e) => {
    int taskId = Convert.ToInt32(e.Node.GetValue("Id"));
    if(tasks.Contains(taskId)) {
        e.Appearance.BackColor = DXSkinColors.FillColors.Warning;
        e.Appearance.ProgressColor = DXSkinColors.FillColors.Warning;
    }
};
ganttControl.CustomPrintTaskDependency += (sender, e) => {
    int predecessorId = Convert.ToInt32(e.PredecessorNode.GetValue("Id"));
    int successorId = Convert.ToInt32(e.SuccessorNode.GetValue("Id"));
    if(tasks.Contains(predecessorId) && tasks.Contains(successorId)) {
        e.Appearance.BackColor = DXSkinColors.FillColors.Warning;
    }
};
vb
Dim tasks As New HashSet(Of Integer)() From {1, 2, 3, 6, 7, 8, 10, 11, 13}
AddHandler ganttControl.CustomPrintTask, Sub(sender, e)
    Dim taskId As Integer = Convert.ToInt32(e.Node.GetValue("Id"))
    If tasks.Contains(taskId) Then
        e.Appearance.BackColor = DXSkinColors.FillColors.Warning
        e.Appearance.ProgressColor = DXSkinColors.FillColors.Warning
    End If
End Sub
AddHandler ganttControl.CustomPrintTaskDependency, Sub(sender, e)
    Dim predecessorId As Integer = Convert.ToInt32(e.PredecessorNode.GetValue("Id"))
    Dim successorId As Integer = Convert.ToInt32(e.SuccessorNode.GetValue("Id"))
    If tasks.Contains(predecessorId) AndAlso tasks.Contains(successorId) Then
        e.Appearance.BackColor = DXSkinColors.FillColors.Warning
    End If
End Sub

See Also

CustomDrawTimescaleColumn

CustomDrawTask

CustomPrintTask

CustomDrawTaskDependency

CustomPrintTaskDependency

Print and Export Gantt Control

GanttControl Class

GanttControl Members

DevExpress.XtraGantt Namespace