2017-12-27 45 views
-2

현재 C# 폼의 데이터베이스 데이터를 표시하고 처리하는 프로그램에서 작업 중입니다. 프로그램로드시 비어있는 DataGridView가 있고 나중에 사용자가 ToolStripMenu에서 항목을 선택하면 데이터베이스의 데이터로 채워집니다. 각 행의 셀 배경색을 매 초마다 바꿀 수 있어야합니다. 나는 타이머를 인스턴스화하고 매 초마다 똑딱 거리도록 설정했다. I 타이머 틱마다 (매초)을 실행하는 방법 이벤트를 설정 아래와 :Timer Tick C# 폼의 DataGrid 셀 배경색 변경

이 방법
void _timer_0_Tick(object sender, EventArgs e) 
    { 

    } 

I의 각 행의 "상태"셀 색 수 싶습니다 Status가 좋은지 나쁜지에 따라 DataGrid를 빨간색 또는 녹색 중 하나로 설정합니다. 여기

는 방법의 일부 의사는 내가하고 싶은 것이 설명입니다 : 내가 본 모든 DataGridView에 행/열 편집 예제는 DataGridView를 기반으로 이벤트 핸들러를 사용하는
void _timer_0_Tick(object sender, EventArgs e) 
    { 
     bool isDataStable = //code to determine if stable on my end 
     if(isDataStable == true) 
     { 
      DataGrid.Row[Index].Column["Status"].BackColor = Green; 
     } 
     else 
     { 
      DataGrid.Row[Index].Column["Status"].BackColor = Red; 
     } 
    } 

, 어떻게 실시간으로 GridView를 편집하면서 타이머를 구현합니까?

감사

+0

지수는 오는가를? 무엇을 나타낼 것입니까? – Plutonix

+1

각 초의 미확인 행 수를 확인하는 타이머가 나쁜 디자인입니다. 사용자가 행 편집을 마친 후에 만 ​​데이터가 변경되므로 데이터가 유효한지 확인하고 상태 셀의 색을 지정해야합니다. – Gusman

+0

'DataGridView' 클래스에는'Rows' 속성이 있고 각 DataGridViewRow에는 Cells 속성이 있고 각 DataGridViewCell에는'BackColor' 속성이있는 Style 속성이 있습니다. – NetMage

답변

1

귀하의 의사 코드는 가까운 - 단지 적절한 속성을 사용

void _timer_0_Tick(object sender, EventArgs e) 
    { 
     bool isDataStable = //code to determine if stable on my end 
     if(isDataStable == true) 
     { 
      DataGrid.Rows[Index].Cells["Status"].Style.BackColor = Color.Green; 
     } 
     else 
     { 
      DataGrid.Rows[Index].Cells["Status"].Style.BackColor = Color.Red; 
     } 
    }