내 양식 응용 프로그램에 DataGridView
이 있습니다. 데이터베이스의 표에서 데이터를 검색하여 DataGridView
에 표시 한 후 특정 조건이 충족되면 녹색 색을 일부 셀의 BackColor 행에 적용합니다. 이러한 셀을 녹색으로 채운 후에는 조건을 충족시키지 못하면 전체 행의 색이 BackColor빨강이됩니다.
C# DataGridView BackColor 덮어 쓰기하지 않음
그러나 사전 채색 된 세포는 새로운 색상으로 덮어 쓸 수없는 것처럼 보입니다. 전체 행의 색상을 지정하기 위해 다음 코드를 적용하더라도 빨강은 사전 채색되지 않은 셀에서만 작동합니다.
for(int i=0; i<myDataGridview.Rows.Count; i++){
if(/*a certain condition FAILS*/){
myDataGridView.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
는 지금, 나는 그 사전 색깔의 세포를 염색하고 빨간색 하나 하나하지만,이 같은 시간과 코드를 많이 취하십시오이 있다면 나는 궁금
for(int i=0; i<myDataGridview.Rows.Count; i++){
if(/*a certain condition FAILS*/){
//Trying to color the whole row RED, but not working
myDataGridView.Rows[i].DefaultCellStyle.BackColor = Color.Red;
//Manually color the cells, which are pre-colored to green, RED
myDataGridView.Rows[i].Cells[6].Style.BackColor = Color.Red;
myDataGridView.Rows[i].Cells[7].Style.BackColor = Color.Red;
....
myDataGridView.Rows[i].Cells[13].Style.BackColor = Color.Red;
myDataGridView.Rows[i].Cells[16].Style.BackColor = Color.Red;
}
}
을 backColor를 재정의하는 더 좋은 방법. 누군가 도와 주실 수 있습니까?
다음은 예제 (모방) DataGridView입니다.
첫 번째 조건은 자동으로 전체 행이 빨간색 얻을 실패하는 사람들을 , 그 작동합니다. 그러나 첫 번째 조건을 통과하여 "Passed1"셀이 녹색으로 표시되고 두 번째 조건이 실패하면 볼 수 있듯이 그 셀은 녹색으로 유지됩니다. 전체 줄의 색을 빨강으로 지정하고 미리 채색 된 녹색 셀을 빨간색으로 덮어 쓰고 싶습니다.
a) 'precolored'를 설명하십시오! b)의 경우 [여기] (https://stackoverflow.com/questions/46337343/background-color-change-on-a-gridview-when-comparing-to-fields-to-one-another/46340828#46340828)를 참조하십시오. 'CellPainting' 이벤트에서 셀을 채색하는 예제입니다. 전체 조건 세트를 작성하면 충분합니다. – TaW
새 BackColor가 셀에 적용된 경우 (미리 채색 됨) myDataGridView.Rows [i] .DefaultCellStyle을 사용하여 해당 셀을 포함하여 전체 행을 채색하려고해도 해당 셀의 BackColor를 다른 색으로 변경할 수 없습니다. BackColor –
기본 값과 재정의 된 값의 차이점이 있습니다. cell.BackColor를 사용하여 기본값이나 이전 변경을 재정의하십시오! 또한 : CellPainting에서 모든 색칠 등을 집중 해보십시오. – TaW