如何在datagridview中显示序列号?

时间:2014-09-06 07:24:35

标签: c# winforms datagridview

我正在使用C#的Windows应用程序。 我想在datagridview中显示序列号。

4 个答案:

答案 0 :(得分:3)

您需要绑定datagridview的DataBindingComplete事件。

private void gridStateZone_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        LoadSerial(gridStateZone);
    }


private void LoadSerial(DataGridView grid)
    {
        foreach (DataGridViewRow row in grid.Rows)
        {
            grid.Rows[row.Index].HeaderCell.Value = string.Format("{0}  ", row.Index + 1).ToString();
            row.Height = 25;
        }
    }

这对我有用。

答案 1 :(得分:2)

在WinForms Applications中,要在行标题中显示行号,我们可以使用DataGridView控件的RowPostPaint事件。

  

用法:假设网格命名为dgvUserDetails

<强>代表

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);
        }
}

不要试图操纵Code部分,因为X和Y是行标题区域中的计算坐标,或者您可以自定义测试它以查看各种结果。

<强>结果

enter image description here

link

答案 2 :(得分:1)

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

答案 3 :(得分:0)

private void DgvSupplierInfo_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        if (dgvSupplierInfo == null)
            return;

        int sno = 1;
        string columnName = "columnName";
        string headerText = "headerText";

        if (dgvSupplierInfo.Columns.Contains(columnName))
            dgvSupplierInfo.Columns.Remove(columnName);
        {
            dgvSupplierInfo.Columns.Add(columnName, headerText);
        }

        dgvSupplierInfo.Columns[columnName].DisplayIndex = 0;

        foreach (DataGridViewRow row in dgvSupplierInfo.Rows)
            row.Cells[columnName].Value = sno++;

        dgvSupplierInfo.AutoResizeColumns();
    }