在dataGridView的标题中自动生成行号

Kin*_*mau 2 c# datagridview visual-studio-2010

我是使用C#/ .NET编程语言的新手,我创建了一个DataGridView来添加,编辑和删除记录.

我正在使用Visual Studio 2010进行编码.我已为行号放入一个未绑定的列,并使用此方法显示自动生成的行号.

private void dataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
        {
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Cells["rownumber"].Value = row.Index + 1;                
            }
            e.Row.Cells["min_bracket"].Value = 0;
            e.Row.Cells["max_bracket"].Value = 0;
            e.Row.Cells["tax_percent"].Value = 0;
            e.Row.Cells["add_amount"].Value = 0;
        }
Run Code Online (Sandbox Code Playgroud)

这在将值插入数据网格时有效,但在检索值时不会在rownumber列中显示任何数字.

如何在标题中获得自动生成的数字,而不必像插入行和检索记录时那样创建一个未绑定的列?

Dav*_*all 9

要在行标题中显示文本,您可以使用Row.HeaderCell.Value如下所示:

void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    DataGridView gridView = sender as DataGridView;
    if (null != gridView)
    {
        foreach (DataGridViewRow r in gridView.Rows)
        {
            gridView.Rows[r.Index].HeaderCell.Value = (r.Index + 1).ToString();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这仅显示用户开始输入时新行的行号.不确定是否有一种简单的方法可以始终在新行上显示行号.