作成日: 2023/02/27 最終更新日: 2023/02/27
文書種別
使用方法
詳細
C1GanttViewのグラフビューでは、以下の3通りの縦線を表示することができます。
・プロジェクトの開始日、終了日(StartFinishLineColorプロパティ)
・今日の日付(TodayLineColorプロパティ)
・スプリッタ(SplitterColorプロパティ)
任意の日付の位置に縦線を表示する機能は用意されていませんが、代替案として、PaintDayイベントを使用し、Graphics.DrawLineメソッドを使用して手動で線を描画する方法が考えられます。

(ご注意)
※以下に記載するコードでは、縦線の長さを指定する際に、GanttViewで内部的に使用されているC1FlexGridにアクセスして行の高さを取得しています。このC1FlexGridは通常は公開されていませんので、コードの利用に際しては、動作を十分ご確認の上で、使用の可否をご検討ください。また、記載したコード以外のカスタマイズ方法などについて、ご提供できる情報はございませんのでご了承ください。
◎サンプルコード(VB)
・プロジェクトの開始日、終了日(StartFinishLineColorプロパティ)
・今日の日付(TodayLineColorプロパティ)
・スプリッタ(SplitterColorプロパティ)
任意の日付の位置に縦線を表示する機能は用意されていませんが、代替案として、PaintDayイベントを使用し、Graphics.DrawLineメソッドを使用して手動で線を描画する方法が考えられます。
(ご注意)
※以下に記載するコードでは、縦線の長さを指定する際に、GanttViewで内部的に使用されているC1FlexGridにアクセスして行の高さを取得しています。このC1FlexGridは通常は公開されていませんので、コードの利用に際しては、動作を十分ご確認の上で、使用の可否をご検討ください。また、記載したコード以外のカスタマイズ方法などについて、ご提供できる情報はございませんのでご了承ください。
◎サンプルコード(VB)
Imports C1.Win.C1FlexGrid
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' タスクの設定
Dim wTask1 As C1.Win.C1GanttView.Task = C1GanttView1.Tasks(0)
wTask1.Start = DateTime.Today.AddDays(-7)
wTask1.Finish = DateTime.Today.AddDays(-5)
wTask1.Name = "Task1"
Dim wTask2 As C1.Win.C1GanttView.Task = C1GanttView1.Tasks(1)
wTask2.Start = DateTime.Today.AddDays(3)
wTask2.Finish = DateTime.Today.AddDays(5)
wTask2.Name = "Task2"
' プロジェクトの開始、終了日に縦線を描画
C1GanttView1.StartDate = CType(wTask1.Start, DateTime)
C1GanttView1.StartFinishLineColor = Color.DarkBlue
End Sub
Private Sub C1GanttView1_PaintDay(sender As Object, e As C1.Win.C1GanttView.PaintDayEventArgs) Handles C1GanttView1.PaintDay
' 明後日の位置に縦線を描画
Dim fgGrid As C1FlexGrid = CType(C1GanttView1.Controls(2), C1FlexGrid)
Dim hRow As Integer = fgGrid.Rows(1).HeightDisplay
If (e.DateTime = DateTime.Today.AddDays(2)) Then
e.Graphics.DrawLine(Pens.Red, e.Rectangle.X, e.Rectangle.Y, e.Rectangle.X, (e.Rectangle.Y + hRow))
End If
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.C1FlexGrid;
namespace prj_C1GanttView_vLine
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// タスクの設定
C1.Win.C1GanttView.Task wTask1 = c1GanttView1.Tasks[0];
wTask1.Start = DateTime.Today.AddDays(-7);
wTask1.Finish = DateTime.Today.AddDays(-5);
wTask1.Name = "Task1";
C1.Win.C1GanttView.Task wTask2 = c1GanttView1.Tasks[1];
wTask2.Start = DateTime.Today.AddDays(3);
wTask2.Finish = DateTime.Today.AddDays(5);
wTask2.Name = "Task2";
// プロジェクトの開始、終了日に縦線を描画
c1GanttView1.StartDate = (DateTime)wTask1.Start;
c1GanttView1.StartFinishLineColor = Color.DarkBlue;
}
private void c1GanttView1_PaintDay(object sender, C1.Win.C1GanttView.PaintDayEventArgs e)
{
// 明後日の位置に縦線を描画
C1FlexGrid fgGrid = (C1FlexGrid)c1GanttView1.Controls[2];
int hRow = fgGrid.Rows[1].HeightDisplay;
if ((e.DateTime == DateTime.Today.AddDays(2)))
{
e.Graphics.DrawLine(Pens.Red, e.Rectangle.X, e.Rectangle.Y, e.Rectangle.X, (e.Rectangle.Y + hRow));
}
}
}
}