在vb.net的datagridview中添加行号

Bri*_*tel 5 vb.net sorting datagrid desktop-application winforms

我正在Vb.Net中开发Windows应用程序.现在有一种形式我想打印网格中显示的记录.通过单击网格中的单元格标题可以对网格进行排序,并且应该按照网格中的显示进行打印.

所以我对如何维护网格中的行号有点困惑.我可以在网格填充和分配数据源时最初从DB获取行号.但是,当用户单击任何单元格标题并对该列进行排序时,行号将会更改.那时我很难保持行号.

任何人都可以告诉我如何在网格中保留行号?

提前致谢.

Vis*_*har 7

我想你需要这个:

注意:此代码在C#中,因此您只需将其转换为VB.Net即可

代表:

this.dgvUserDetails.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvUserDetails_RowPostPaint);
Run Code Online (Sandbox Code Playgroud)

事件:

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);
        }
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT

行号

  • @kashif 或者你可以在以下帮助下完成:_dataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue; _dataGridView.EnableHeadersVisualStyles = false; (2认同)