[GanttView for WinForms] タスク間のリンクを抑制する方法

文書番号 : 82436     文書種別 : Info
登録日 : 2017/11/10     最終更新日 : 2017/11/10

対象製品

Studio for WinForms

詳細

C1GanttViewでは、タスクをドラッグして他のタスク上でドロップすることで、自動的にリンク線を描画し、先行タスクと高校タスクを設定することができます。

このデフォルトのリンク機能を抑止し、タスク間のリンクを生成しないようにするには、以下の手順を実行します。

(1) C1GanttViewのShowLinksプロパティをFalseに設定します。
(2) C1GanttViewのBeforeEditTaskイベントとAfterEditTaskイベントを使用し、先行タスクを示すPredecessorsが存在する場合、編集の動作をキャンセルします。

 ※ただし、タスクのドラッグ中に描画されるリンク線の表示を止めることはできませんので、ご了承ください。

◎サンプルコード(VB)
Dim cnt As Integer = 0
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  C1GanttView1.ShowLinks = False
End Sub
Private Sub C1GanttView1_BeforeEditTask(sender As Object, e As CancelTaskArgs) Handles C1GanttView.BeforeEditTask
  cnt = e.Task.Predecessors.Count
End Sub
Private Sub C1GanttView1_AfterEditTask(sender As Object, e As CancelTaskArgs) Handles C1GanttView.AfterEditTask
  If e.Task.Predecessors.Count <> cnt Then
    e.Cancel = True
  End If
End Sub

◎サンプルコード(C#)
int cnt;
private void Form1_Load(object sender, EventArgs e)
{
  c1GanttView1.ShowLinks = false;
}
private void c1GanttView1_BeforeEditTask(object sender, CancelTaskArgs e)
{
  cnt = e.Task.Predecessors.Count;
}
private void c1GanttView1_AfterEditTask(object sender, CancelTaskArgs e)
{
  if (e.Task.Predecessors.Count != cnt)
  {
    e.Cancel = true;
  }
}