您的位置:首页 > 其它

在DataGridView中添加行号

2008-08-21 08:19 323 查看
转载:http://blog.csdn.net/webwx/archive/2007/03/21/1536090.aspx

今天用C#2.0开发一个WinForm项目时,碰到一个在DataGridView中加行号的问题,找了一些资料,终于搞定。现把它贴出来供大家参考。

  参考:http://community.csdn.net/Expert/topic/4671/4671416.xml?temp=.1845667

这里提到了两种方法:

一、在数据加载后,用下面的代码:

1 for (int i = 0; i < DataGridView1.Rows.Count; i++)

2 DataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
这样当窗体第一次加载显示时,行号不会出现,于是试了第二种方法,加上自己改了一点。

  二、在DataGridView的RowPostPaint事件中加入下面的代码:

1 private void DataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)

2 {

3 Color color = DataGridView1.RowHeadersDefaultCellStyle.ForeColor;

4 if (DataGridView1.Rows[e.RowIndex].Selected)

5 color = DataGridView1.RowHeadersDefaultCellStyle.SelectionForeColor;

6 else

7 color = DataGridView1.RowHeadersDefaultCellStyle.ForeColor;

8

9 using (SolidBrush b = new SolidBrush(color))

10 {

11 e.Graphics.DrawString((e.RowIndex+1).ToString(), e.InheritedRowStyle.Font, b, e.RowBounds.Location.X+20, e.RowBounds.Location.Y+6);

12 }

13 }

网上还有:

void dgrid_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)

{

SolidBrush B = new SolidBrush(Color.Red);

//or:SolidBrush b = new SolidBrush(this.dataGridView1.RowHeadersDefaultCellStyle.ForeColor)

e.Graphics.DrawString(Convert.ToString(e.RowIndex + 1, System.Globalization.CultureInfo.CurrentUICulture), e.InheritedRowStyle.Font, B, e.RowBounds.Location.X + 20, e.RowBounds.Location.Y + 4);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: