2013-01-09 2 views
4

Vb.Net에서 Windows 응용 프로그램을 개발 중입니다. 이제 그리드에 표시된 레코드를 인쇄 할 하나의 양식이 있습니다. 그리드의 셀 머리글을 클릭하여 그리드를 정렬하는 기능이 있습니다. 그리드에 표시된대로 인쇄해야합니다.vb.net의 datagridview에 행 번호 추가

그리드에서 행 번호를 유지하는 방법에 대해 약간 혼란 스럽습니다. 처음에 그리드를 채우고 데이터 소스를 지정할 때 DB에서 행 번호를 가져올 수 있습니다. 그러나 사용자가 셀 헤더를 클릭하고 해당 열을 정렬하면 행 번호가 변경됩니다. 그 당시 행 번호를 유지하는 것은 매우 어렵습니다.

그리드에서 행 번호를 유지하는 방법을 알려줄 수 있습니까?

미리 감사드립니다.

+0

u는 데이터베이스의 어떤 종류를 사용합니까? –

+0

당신은 정렬에서 순서를 바꾸고 싶지 않습니다 ..? –

+0

@ M.NourBerro 우리는 SQL Server 2008을 사용하고 있습니다. –

답변

6

난 당신이 필요 같아요

참고 : 그냥 VB.Net로 변환 할 수 있도록 이 코드는 C#으로입니다

대표 :

this.dgvUserDetails.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvUserDetails_RowPostPaint); 

이벤트 :

private void dgvUserDetails_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) 
{ 
     using (SolidBrush b = new SolidBrush(dgvUserDetails.RowHeadersDefaultCellStyle.ForeColor)) 
     { 
       e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, b, e.RowBounds.Location.X + 10, e.RowBounds.Location.Y + 4); 
     } 
} 

OUTPUT

row number

+0

! 아주 좋은가요? RowHeader Backcolor를 현재 갖고있는 것으로 변경하는 방법은 무엇입니까? – kashif

+1

제 3 자 테마의 [Skin-Soft] (http://www.skin-soft.co.uk/) 통합 –

+1

@kashif 또는 의 도움으로 할 수 있습니다. _dataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color. 푸른; _dataGridView.EnableHeadersVisualStyles = false; –

관련 문제