2013-01-09 137 views
4

我開發的Windows應用程序在Vb.Net行號。現在有一種形式可以打印網格中顯示的記錄。有一種方法可以通過點擊網格中的單元頭來對網格進行排序並且應該按照網格中顯示的那樣進行打印。中的datagridview添加在vb.net

所以我有點迷惑如何保持在網格中的行數。在網格填充和分配數據源時,我可以從數據庫中獲取行號。但是,當用戶單擊任何單元格標題並對該列進行排序時,行號會發生變化。那時我很難保持行號。

任何一個可以給我的想法如何保持在網格中的行號?

在此先感謝。

+0

你用什麼樣的數據庫? –

+0

你不想改變排序的順序..? –

+0

@ M.NourBerro我們使用SQL Server 2008的 –

回答

6

我猜你需要這樣的:

注:此代碼是在C#所以你可以將其轉換爲VB.Net

代表:

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

,這是一個第三方的主題綜合[皮膚軟(http://www.skin-soft.co.uk/) –

+1

@kashif或者你可以的幫助下做: _dataGridView.ColumnHeadersDefaultCellStyle.BackColor =顏色。藍色; _dataGridView.EnableHeadersVisualStyles = false; –