Как программно изменить цвет задней части ячейки DataGridView?
Я делаю диаграмму Ганта программно. Что я делаю, так это получаю задачи проекта, привязываю их к сетке, а затем получаю продолжительность проекта в днях, зацикливаюсь на ней, чтобы добавить 1 дополнительный столбец в день в виде сетки. Что мне нужно сделать, это получить продолжительность каждой задачи, а затем заполнить соответствующие ячейки в сетке.
т.е.
Продолжительность проекта - 5 дней.
длительность задачи 1 - 2 дня> необходимо: 2/5 клеток дгв.
Это возможно?
РЕДАКТИРОВАТЬ
//GET PROJECT TASK
string GetTasks = "SELECT TaskName FROM CreateTask WHERE ProjectID='" + ProjectID_Txt.Text + "'";
DataTable ProjTasks_DT = new DataTable();
SqlDataAdapter ProjTasks_Adapter;
ProjTasks_Adapter = new SqlDataAdapter(GetTasks, connString);
ProjTasks_DT.Clear();
ProjTasks_Adapter.Fill(ProjTasks_DT);
connString.Close();
TaskTrackingGrd.DataSource = ProjTasks_DT;
//PROJECT DURATION IN HOURS
int DayDuration = ((Project_EndDate.Value - Project_StartDate.Value).Days) + 1;
//ADDS THE COLUMNS
for (int i = 0; i < DayDuration; i++)
{
var col3 = new DataGridViewTextBoxColumn();
col3.HeaderText = "Day " + (i+1);
TaskTrackingGrd.Columns.AddRange(new DataGridViewColumn[] { col3 });
}
1 ответ
Решение
Да:
int col, row;
Color color;
...
dgv[col, row].Style.BackColor = color;
Предположим, что задание является строкой 1, а проект начинается со дня 2 и выполняется в течение 3 дней:
{
ShowTask(1, 2, 3, Color.Red);
}
void ShowTask(int taskRow, int startDay, int duration, Color color)
{
for (int day = startDay - 1; day < startDay + duration - 1; day++)
dgv[day, taskRow].Style.BackColor = color;
}