怎样可以dataGridView的第一列中显示这一行是第几条记录? 小弟相求……………………………………怎样可以dataGridView的第一列中显示这一行是第几条记录? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //返回当前单元格的行索引dataGridView.currentcell.rowindex dataGridView.currentrow.index private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) { using (SolidBrush b = new SolidBrush(dataGridView1.RowHeadersDefaultCellStyle.ForeColor)) { e.Graphics.DrawString((e.RowIndex + 1).ToString(System.Globalization.CultureInfo.CurrentCulture), dataGridView1.DefaultCellStyle.Font, b, e.RowBounds.Location.X + 20, e.RowBounds.Location.Y + 4); } } 先在C#中处理一下数据,然后再绑定也可以的。/// <summary> /// 在DataTable中添加一序号列,编号从1依次递增 /// </summary> /// <param >DataTable</param> /// <returns></returns> private DataTable AddSeriNumToDataTable(DataTable dt) { //需要返回的值 DataTable dtNew; if (dt.Columns.IndexOf("序号") >= 0) { dtNew = dt; } else //添加一序号列,并且在第一列 { int rowLength = dt.Rows.Count; int colLength= dt.Columns.Count; DataRow[] newRows = new DataRow[rowLength]; dtNew = new DataTable(); //在第一列添加“序号”列 dtNew.Columns.Add("序号"); for (int i = 0; i < colLength; i++) { dtNew.Columns.Add(dt.Columns[i].ColumnName); //复制dt中的数据 for (int j = 0; j < rowLength; j++) { if (newRows[j] == null) newRows[j] = dtNew.NewRow(); //将其他数据填充到第二列之后,因为第一列为新增的序号列 newRows[j][i+1] = dt.Rows[j][i]; } } foreach (DataRow row in newRows) { dtNew.Rows.Add(row); } } //对序号列填充,从1递增 for (int i = 0; i < dt.Rows.Count; i++) { dtNew.Rows[i]["序号"] = i + 1; } return dtNew; } private DataTable dt; private void Form1_Load(object sender, EventArgs e) { dt = new DataTable(); dt.Columns.Add("名称"); dt.Columns.Add("价格"); dt.Rows.Add("白菜", 12); dt.Rows.Add("白菜", 12); dt.Rows.Add("白菜", 12); dt.Rows.Add("白菜", 12); dt.Rows.Add("白菜", 12); DataTable dt2 = AddSeriNumToDataTable(dt); dataGridView1.DataSource = dt2; } 求一身份证验证正则,速度结贴 请问以下代码怎么转换 richtextbox中关于隐藏文本的获取 求高手翻译一部分JAVA代码为C#,有关MD5加密 如何在后台读取js插入行内的值 装箱与拆箱的疑问 打开文件问题 opcclient开发,急送分 求教:C#中的System.Data.SqlClient.SqlTransaction是怎么使用的呀 有没有象windows优化大师(4.81)左边那样的按钮项。 60分在线等,怎么给用户控件添加事件? 打开excel时,时灵时不灵为什么?
dataGridView.currentcell.rowindex dataGridView.currentrow.index
{
using (SolidBrush b = new SolidBrush(dataGridView1.RowHeadersDefaultCellStyle.ForeColor))
{
e.Graphics.DrawString((e.RowIndex + 1).ToString(System.Globalization.CultureInfo.CurrentCulture), dataGridView1.DefaultCellStyle.Font, b, e.RowBounds.Location.X + 20, e.RowBounds.Location.Y + 4);
}
}
/// 在DataTable中添加一序号列,编号从1依次递增
/// </summary>
/// <param >DataTable</param>
/// <returns></returns>
private DataTable AddSeriNumToDataTable(DataTable dt)
{
//需要返回的值
DataTable dtNew;
if (dt.Columns.IndexOf("序号") >= 0)
{
dtNew = dt;
}
else //添加一序号列,并且在第一列
{
int rowLength = dt.Rows.Count;
int colLength= dt.Columns.Count;
DataRow[] newRows = new DataRow[rowLength]; dtNew = new DataTable();
//在第一列添加“序号”列
dtNew.Columns.Add("序号");
for (int i = 0; i < colLength; i++)
{
dtNew.Columns.Add(dt.Columns[i].ColumnName);
//复制dt中的数据
for (int j = 0; j < rowLength; j++)
{
if (newRows[j] == null)
newRows[j] = dtNew.NewRow();
//将其他数据填充到第二列之后,因为第一列为新增的序号列
newRows[j][i+1] = dt.Rows[j][i];
}
}
foreach (DataRow row in newRows)
{
dtNew.Rows.Add(row);
} }
//对序号列填充,从1递增
for (int i = 0; i < dt.Rows.Count; i++)
{
dtNew.Rows[i]["序号"] = i + 1;
} return dtNew;
} private DataTable dt;
private void Form1_Load(object sender, EventArgs e)
{
dt = new DataTable();
dt.Columns.Add("名称");
dt.Columns.Add("价格"); dt.Rows.Add("白菜", 12);
dt.Rows.Add("白菜", 12);
dt.Rows.Add("白菜", 12);
dt.Rows.Add("白菜", 12);
dt.Rows.Add("白菜", 12); DataTable dt2 = AddSeriNumToDataTable(dt);
dataGridView1.DataSource = dt2;
}