2012-02-15 2 views
0

나는 프로그래밍 방식으로 간트 차트를 만들고 있습니다. 내가하는 일은 프로젝트의 작업을 Gridview에 바인딩 한 다음 며칠 만에 프로젝트 기간을 가져 와서 반복하여 그리드보기에 하루에 1 개의 추가 열을 추가합니다. 내가해야 할 일은 각 작업의 지속 시간을 얻은 다음 그리드의 해당 셀을 채우는 것입니다.프로그래밍 방식으로 빈 DataGridView 셀 다시 색을 변경하는 방법?


프로젝트 기간 - 5 일.
작업 1 기간 - 2 일> : dgv 세포의 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; 
} 
+0

대기, col, row 란 무엇입니까? 이 열과 행 색인입니까? 열을 추가하는 방법을 보려면 내 질문을 편집 해주십시오. – RMSP

+0

예. 왼쪽 위 셀이 0,0 인 x, y 좌표로 생각할 수 있습니다. –

+0

감사합니다. 그것을 이해하는 동안 나에게 가져 갔다. 그러나 그것은 크다! 한 가지 문제가 있습니다. 그리드를 다시 바인딩하지 않으면 색상이 즉시 표시되지 않습니다. 어떻게 수정해야합니까? – RMSP

관련 문제