datagridview赋值的一般写法:
for(int i=0;i<5;i++)
{
int RowIndex = dataGridView1.Rows.Add();
dataGridView1.Rows[RowIndex].Cells[0].Value = (i+1).ToString();
dataGridView1.Rows[RowIndex].Cells[1].Value = "Name"+(i+1).ToString();
dataGridView1.Rows[RowIndex].Cells[2].Value = "JobNumber"+(i+1).ToString();
dataGridView1.Rows[RowIndex].Cells[3].Value = "Man";
dataGridView1.Rows[RowIndex].Cells[4].Value = "Remark" + (i + 1).ToString();
}
比较机智的写法:
for (int i = 0; i < 5; i++)
{
int RowIndex = dataGridView1.Rows.Add();
dataGridView1.Rows[RowIndex].Cells[ColumnIndex.Name].Value = (i + 1).ToString();
dataGridView1.Rows[RowIndex].Cells[ColumnName.Name].Value = "Name" + (i + 1).ToString();
dataGridView1.Rows[RowIndex].Cells[ColumnJobNumber.Name].Value = "JobNumber" + (i + 1).ToString();
dataGridView1.Rows[RowIndex].Cells[ColumnSex.Name].Value = "Man";
dataGridView1.Rows[RowIndex].Cells[ColumnRemark.Name].Value = "Remark" + (i + 1).ToString();
}
这里面的ColumnIndex是在界面上加列的时候就定义好的,如下图:
这样写的好处是,如果用户要求在这个列表前面增加一列,那么我们改动的代码行数就可以很少,而第一种写法要将for循环里面的每个Cells[i]的i都改一下变成i+1;
列数少的时候改代码感觉不到什么,但当你要显示二三十列的时候,你就能体会到方法二的好处了,改动量小,而且不容易改错!
对了,表格的doubleclick事件也可以做如下改动:
一般写法:
if (e.ColumnIndex==0)
{
MessageBox.Show("双击了序号列");
}
机智写法:
if (dataGridView1.Columns[e.ColumnIndex] == ColumnIndex)
{
MessageBox.Show("双击了序号列");
}