windowsforms-devexpress-dot-xtragantt-dot-ganttcontrol-e2b6f298.md
Fires before a task dependency line in the chart area is displayed. Provides access to a drawing surface and allows you to draw the task manually.
Namespace : DevExpress.XtraGantt
Assembly : DevExpress.XtraGantt.v25.2.dll
NuGet Package : DevExpress.Win.Gantt
[DXCategory("Events")]
public event CustomDrawTaskDependencyEventHandler CustomDrawTaskDependency
<DXCategory("Events")>
Public Event CustomDrawTaskDependency As CustomDrawTaskDependencyEventHandler
The CustomDrawTaskDependency event's data class is CustomDrawTaskDependencyEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| Appearance | Provides access to appearance settings that specify the dependency line background color. |
| Cache | Provides access to the drawing surface and a cache of brushes, pens, fonts, and other graphics. Inherited from CustomDrawEventArgs. |
| Handled | Gets 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. |
| Lines | Provides access to the collection of RectangleF structures that specify the processed dependency line. |
| PredecessorNode | Gets the predecessor node. |
| State | Gets the object state: normal, hot tracked, pressed, disabled, or selected. |
| SuccessorNode | Gets the successor node. |
The event data class exposes the following methods:
| Method | Description |
|---|---|
| DefaultDraw() | Draws the task dependency line. |
The code below shows how to highlight specific tasks and dependencies.
Run Demo: Highlight Tasks and Dependencies
HashSet<int> tasks = new HashSet<int> { 1, 2, 3, 6, 7, 8, 10, 11, 13 };
ganttControl.CustomDrawTask += (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.CustomDrawTaskDependency += (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;
}
};
Dim tasks As New HashSet(Of Integer)() From {1, 2, 3, 6, 7, 8, 10, 11, 13}
AddHandler ganttControl.CustomDrawTask, 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.CustomDrawTaskDependency, 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