今天用C#2.0开发一个WinForm项目时,碰到一个在DataGridView中加行号的问题,找了一些资料,终于搞定。现把它贴出来供大家参考。
参考:http://community.youkuaiyun.com/Expert/topic/4671/4671416.xml?temp=.1845667
这里提到了两种方法:
一、在数据加载后,用下面的代码:
参考:http://community.youkuaiyun.com/Expert/topic/4671/4671416.xml?temp=.1845667
这里提到了两种方法:
一、在数据加载后,用下面的代码:
1
for
(
int
i
=
0
; i
<
DataGridView1.Rows.Count; i
++
)
2
{
3
int j = i + 1;
4
DataGridView1.Rows[i].HeaderCell.Value = j.ToString();
5
}
6
DataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
for
(
int
i
=
0
; i
<
DataGridView1.Rows.Count; i
++
)2

{3
int j = i + 1;4
DataGridView1.Rows[i].HeaderCell.Value = j.ToString();5
}
6
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
}
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
else7
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
}
OK,搞定,效果还令人满意
C# DataGridView 添加行号
本文介绍了使用C# 2.0在WinForm项目中为DataGridView控件添加行号的方法。提供了两种方案:一种是在数据加载后直接设置行头值;另一种是在RowPostPaint事件中绘制行号。
152

被折叠的 条评论
为什么被折叠?



