DataGridView은 DataSource을 DataBinding으로 설정하여 채 웁니다.DataGridView에서 특정 행을 강조 표시하는 방법
이제 행 자체의 일부 값에 따라 다른 배경색을 갖는 DataGridView의 특정 행을 갖기를 원합니다.
어떻게하면이 작업을 수행 할 수 있습니까?
DataGridView은 DataSource을 DataBinding으로 설정하여 채 웁니다.DataGridView에서 특정 행을 강조 표시하는 방법
이제 행 자체의 일부 값에 따라 다른 배경색을 갖는 DataGridView의 특정 행을 갖기를 원합니다.
어떻게하면이 작업을 수행 할 수 있습니까?
이 개념은 당신이 그리드에서 이벤트를 구독한다는 것입니다 좋은 예 here.
있다. 셀이 채워지면 이벤트가 발생하고 값을 기준으로 셀을 서식 지정할 수 있습니다.
DataGridview의 CellFormatting 이벤트 처리기에서 원하는 모든 행에 기본 배경색을 설정할 수 있습니다.
private void MyDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex == rowIndexToHighlight)
{
e.CellStyle.BackColor = Color.Green;
}
}
-1이 예제는 성능에 미치는 영향이 매우 낮으므로 데이터 바인딩을 사용하는 경우 데이터 그리드는 중복 행 레코드를 유지해야합니다. Psasik의 예제는 행을 공유하지 않도록합니다. – Kleinux
@Kleinux : 중복 행 레코드를 유지하는 것에 대한 흥미로운 설명입니다. 이것이 왜 그렇게 설명 할 수 있겠습니까? 감사합니다 – Andy
당신이 문서를 보면 공유 대 비공개 행에 대한 언급이 있습니다. 위의 코드는 그리드 뷰가 데이터 소스의 모든 행에 대한 실제 DataGridViewRow 레코드를 작성하도록합니다. 이 행은 셀 값의 의미에서 중복되지는 않지만 여전히 해당 데이터 소스를 읽을 수 있지만 달리 필요한 스타일 정보 때문에 존재하지 않아도됩니다. 바라기를 나는 나의 코멘트를 조금 더 분명하게했다. 이것은 좋은 자습서입니다. http://msdn.microsoft.com/en-us/library/ha5xt0d9.aspx – Kleinux
당신은 당신이이 질문에서 몇 가지 유용한 정보를 찾을 수 있다고 생각합니다 전체 행
의 색상이나 스타일을 변경하려면 RowPrePaint를 사용할 수 있습니다. http://stackoverflow.com/questions/1078782/c-iterate-over-datagridview-change-row-color – rahul