作成日: 2025/10/07 最終更新日: 2025/10/07
文書種別
使用方法
詳細
チャートビューで、特定の行の背景色を設定するには、PaintDayにてe.Graphics.FillRectangleメソッドを使用して、指定タスクの行の背景色を設定します。
なお、この場合土日の背景色はデフォルト色のままになるので、これらも変更するには、まずC1GanttView1.NonworkingTimeColorを透明色にした後、PaintDayにてGraphics.FillRectangleを用いて土日の背景色、次いで指定したタスクの背景色の順に設定します。
以下に、1行目・2行目のタスクの背景色を設定するためのコードを記載します。
◎サンプルコード(VB)
Imports C1.Win.C1GanttView
Public Class Form1
Dim ColorNW = New Color
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの設定
C1GanttView1.Tasks.Clear()
Dim task0 = New C1.Win.C1GanttView.Task()
task0.Name = "タスクA"
task0.Start = DateTime.Today()
task0.Duration = 4
C1GanttView1.Tasks.Add(task0)
Dim task1 = New C1.Win.C1GanttView.Task()
task1.Name = "タスクB"
task1.Start = DateTime.Today().AddDays(1)
task1.Duration = 4
C1GanttView1.Tasks.Add(task1)
Dim task2 = New C1.Win.C1GanttView.Task()
task2.Name = "タスクC"
task2.Start = DateTime.Today().AddDays(14)
task2.Duration = 5
C1GanttView1.Tasks.Add(task2)
Dim task3 = New C1.Win.C1GanttView.Task()
task3.Name = "タスクD"
task3.Start = DateTime.Today().AddDays(15)
task3.Duration = 5
C1GanttView1.Tasks.Add(task3)
'土日の背景を透明に設定
ColorNW = C1GanttView1.NonworkingTimeColor
C1GanttView1.NonworkingTimeColor = Color.Transparent
End Sub
Private Sub C1GanttView1_PaintDay(sender As Object, e As PaintDayEventArgs) Handles C1GanttView1.PaintDay
'土日の背景をデフォルト色で描画
If e.DateTime.Date.DayOfWeek = DayOfWeek.Saturday Or e.DateTime.Date.DayOfWeek = DayOfWeek.Sunday Then
e.Graphics.FillRectangle(New SolidBrush(ColorNW), e.Rectangle)
End If
'指定したタスクの背景を描画
If e.Task Is C1GanttView1.Tasks(0) OrElse e.Task Is C1GanttView1.Tasks(1) Then
e.Graphics.FillRectangle(Brushes.LightSteelBlue, e.Rectangle)
End If
End Sub
End Class◎サンプルコード(C#)
using C1.Win.C1GanttView;
namespace prj_C1GanttView
{
public partial class Form1 : Form
{
private Color ColorNW;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// データの設定
c1GanttView1.Tasks.Clear();
var task0 = new C1.Win.C1GanttView.Task
{
Name = "タスクA",
Start = DateTime.Today,
Duration = 4
};
c1GanttView1.Tasks.Add(task0);
var task1 = new C1.Win.C1GanttView.Task
{
Name = "タスクB",
Start = DateTime.Today.AddDays(1),
Duration = 4
};
c1GanttView1.Tasks.Add(task1);
var task2 = new C1.Win.C1GanttView.Task
{
Name = "タスクC",
Start = DateTime.Today.AddDays(14),
Duration = 5
};
c1GanttView1.Tasks.Add(task2);
var task3 = new C1.Win.C1GanttView.Task
{
Name = "タスクD",
Start = DateTime.Today.AddDays(15),
Duration = 5
};
c1GanttView1.Tasks.Add(task3);
// 土日の背景を透明に設定
ColorNW = c1GanttView1.NonworkingTimeColor;
c1GanttView1.NonworkingTimeColor = Color.Transparent;
}
private void c1GanttView1_PaintDay(object sender, PaintDayEventArgs e)
{
// 土日の背景をデフォルト色で描画
if (e.DateTime.Date.DayOfWeek == DayOfWeek.Saturday ||e.DateTime.Date.DayOfWeek == DayOfWeek.Sunday)
{
using (var brush = new SolidBrush(ColorNW))
{
e.Graphics.FillRectangle(brush, e.Rectangle);
}
}
// 指定したタスクの背景を描画
if (e.Task == c1GanttView1.Tasks[0] || e.Task == c1GanttView1.Tasks[1])
{
e.Graphics.FillRectangle(Brushes.LightSteelBlue, e.Rectangle);
}
}
}
}ここに詳細を記載してください。