小弟相求……………………………………
怎样可以dataGridView的第一列中显示这一行是第几条记录?

解决方案 »

  1.   

    //返回当前单元格的行索引
    dataGridView.currentcell.rowindex dataGridView.currentrow.index 
      

  2.   

            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);
                }
            }
      

  3.   

    先在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;
            }