仅通过更改datagridview在c#net中的属性在datagridview中插入行号,

仅通过更改datagridview在c#net中的属性在datagridview中插入行号,,c#,ado.net,C#,Ado.net,我想通过在c#net中更改其属性,在Datagridveiw头中自动生成行号,提前感谢 <asp:TemplateField> <ItemTemplate> <%# Container.DataItemIndex + 1 %> </ItemTemplate> </asp:TemplateField> 要使用c生成行号DataGridView,可以使用DataGridView的RowPostPaint事

我想通过在c#net中更改其属性,在Datagridveiw头中自动生成行号,提前感谢


<asp:TemplateField>
    <ItemTemplate>
        <%# Container.DataItemIndex + 1 %>
    </ItemTemplate>
</asp:TemplateField>
要使用c生成行号DataGridView,可以使用DataGridView的RowPostPaint事件

  private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
        {
            // get the row number in leading zero format, 
            //  where the width of the number = the width of the maximum number
            int RowNumWidth = dataGridView1.RowCount.ToString().Length;
            StringBuilder RowNumber = new StringBuilder(RowNumWidth);
            RowNumber.Append(e.RowIndex + 1);
            while (RowNumber.Length < RowNumWidth)
                RowNumber.Insert(0, "0");

            // get the size of the row number string
            SizeF Sz = e.Graphics.MeasureString(RowNumber.ToString(), this.Font);

            // adjust the width of the column that contains the row header cells 
            if (dataGridView1.RowHeadersWidth < (int)(Sz.Width + 20))
                dataGridView1.RowHeadersWidth = (int)(Sz.Width + 20);

            // draw the row number
               e.Graphics.DrawString(
                RowNumber.ToString(), 
                this.Font, 
                SystemBrushes.ControlText, 
                e.RowBounds.Location.X + 15, 
                e.RowBounds.Location.Y + ((e.RowBounds.Height - Sz.Height) / 2));
        }
private void dataGridView1_RowPostPaint(对象发送方,DataGridViewRowPostPaintEventArgs e)
{
//获取前导零格式的行号,
//其中数字的宽度=最大数字的宽度
int RowNumWidth=dataGridView1.RowCount.ToString().Length;
StringBuilder RowNumber=新的StringBuilder(RowNumWidth);
追加(e.RowIndex+1);
while(RowNumber.Length
右键单击DataGridView,查看属性。然后你会得到一个如下所示的窗口。浏览属性顶部的事件,您可以看到DataGridView可以处理的多个事件。选择行Postpaint并双击右侧将创建代码隐藏事件


您可以使用数据网格的CurrentRow属性

我想改变背景颜色,如下所示:

myDataGrid.CurrentRow.DefaultCellStyle.BackColor = Color.Yellow;

希望它对你有用kitty…

谢谢你的回答,但我的代码是用c#而不是asp.net编写的,如果你知道的话,请回答,或者应该用另一个asp表单编写此代码,我可以这样做吗?我已经使用了dataGridView1单元内容单击此DataGridView,我不会使用dataGridView1在工具箱中延迟此数据网格视图,怎么办?当我按原样插入代码时,它没有显示行号。请创建DataGridView的属性,在事件会话中,您可以找到RowPostPaint事件。双击它会给出关于代码隐藏的事件,然后添加代码…你能详细说明一下这里所说的事件会话是什么意思吗,因为当我单击DataGridView时,它会在Form1.cs(源文件)private void dataGridView1_CellContentClick(对象发送者,DataGridViewCellEventArgs e)中给出关于代码隐藏的信息{}如果要在答案中添加新信息,应编辑第一个答案。不要发布新答案。阅读