我在页面加载事件中动态地在数据网格视图中添加数据。但是我收到一个错误,说索引超出了范围。("必须是非负数且小于 datagridview 中的集合参数名称的大小。
以下是代码:
dataGridView1.Rows.Add();
dataGridView1.Rows[0].Cells[0].Value = "Basic";
dataGridView1.Rows[0].Cells[1].Value = "Basic";
dataGridView1.Rows[1].Cells[0].Value = "PDALLW";
dataGridView1.Rows[1].Cells[1].Value = "Professional Development Allow";
dataGridView1.Rows[2].Cells[0].Value = "BPAllw";
dataGridView1.Rows[2].Cells[1].Value = "Business Promotion Allowance";
调用 Add(3)
而不是 Add()
。您还可以扩展它以在任何给定时间根据需要添加任意数量的行。MSDN 链接
网格没有行。您一定没有绑定它,或者您正在超过它获得的行数。
-
请确保在访问网格行之前绑定网格。
-
确保不要访问不存在的行索引。
您似乎只添加了一行。因此,您只能访问第 0 行。除非创建三行,否则 dataGridView1.Rows[1]
和 dataGridView1.Rows[2]
等调用将失败。
解释:
dataGridView1.Rows.Add();
这会向 DataGridView 添加一行。因此,您有一行的索引为 0(行索引从 0 开始)。您可以像以前一样为第 0 行设置值:
dataGridView1.Rows[0].Cells[0].Value = "Basic";
但是,您尝试将值设置为索引为 1 的行(第二行):
dataGridView1.Rows[1].Cells[0].Value = "PDALLW";
这将失败,因为您只添加了一行(调用Rows.Add
一次)。如果需要三行,请在设置单元格值之前调用dataGridView1.Rows.Add();
三次。