添加行
dataGridView1.Rows.Add();
添加行和多个数据
dataGridView1.Rows.Add("false","a,","b");
添加行,数据为一个数组
dataGridView1.Rows.Add(string[] a);
添加泛型数据,注意,泛型是不能够直接添加的。
dataGridView1.Rows.Add(xulie.ToArray());
另外,如下语句看起来没错,单元格的内容有时候是“”或者null,但是依旧会报错未将对象引用设置引用到实例。似乎可以返回空或者null,但是是不行的
Console.WriteLine(dataGridView2.Rows[w].Cells[r].Value.ToString());
可以这样做
for (int i = 0; i < dataGridView2.RowCount; i++)
{
for (int f = 0; f < dataGridView2.ColumnCount; f++)
{
if (dataGridView2.Rows[i].Cells[f].Value == null)
{
dataGridView2.Rows[i].Cells[f].Value = "";
}
}
}
单元格的点击事件
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
获取点击单元格所在的行
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow dgr = dataGridView1.CurrentRow;
}
获取点击单元格所在的行的行索引
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow dgr = dataGridView1.CurrentRow;
dgr.Index;
}
获取点击单元格或者本行的内容
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow dgr = dataGridView1.CurrentRow;
dgr.Cells[1].Value;
dgr.Cells[1].Value.ToString(); //两种都可以
}
、
需要注意的是点击页眉行与第一行索引的值都为0,并且页眉行内容不能通过这种方式访问内容,会报错未将对象设置引用到实例。而我们希望防止用户点击页眉报错,可以加如下代码。
if (dgr != null)
{
//代码
}
因为在点击页眉时dgr的值为null。
遇到一个不明所以的BUG,获取datagridview的Checkbox列的值错误,在此记录,待有缘解开。
代码在下,即使Value为true也不行。
if (dataGridView1.Rows[i].Cells[0].Value != null && dataGridView1.Rows[i].Cells[0].Value.ToString() == "true")
替换为
bool.Parse(dataGridView1.Rows[i].Cells[0].Value.ToString())