2014-03-12 2 views
0

RowPrePaint 이벤트를 사용하여 내 행을 페인트하는 예제는 MSDN의 예제를 따르고 있습니다.DataGridView가 내 사용자 정의 행 페인팅을 덮어 씁니다.

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowprepaint(v=vs.110).aspx

는 난 단지 사용자 정의 모든 일부 행을 페인트합니다. 또한 교대 행 스타일이 적용되었습니다.

디버거를 밟았을 때 MSDN (미묘한 그라디언트)의 예제에 따라 프로그램 페인트 행을 볼 수 있었지만 RowPrePaint 이벤트 처리기가 프로그램을 반환하자마자 기본값을 따라 행을 다시 그렸습니다. 스타일.

맞춤형 페인팅 스타일을 유지하려면 어떻게해야합니까?

답변

1

DataGridViewRowPrePaintEventArgs.Handled = true

void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) 
{ 
    e.Handled =true; 
} 
+0

감사를 설정! 이것은 답 이었지만'e.Handled = true'를 설정하기 전에'e.PaintCells (e.ClipBounds, DataGridViewPaintParts.All)'를 호출해야했습니다. 그렇지 않으면 아무것도 그려지지 않습니다. – user2320861

+0

@ user2320861 - 도와 줘서 기쁩니다. upvote하는 것을 잊지 마라 :) 그래, 당신이 그들을 오버라이드하고 싶지 않다면 페인트되는 부분에 따라 기본 페인팅 메소드를 호출해야한다. 그러나 이벤트 설정을 완료하면 e.Handled가 시스템을 다시 칠하는 것을 방지합니다. – Junaith

관련 문제