指数超出范围.必须为非负数且小于 datagridview 中的集合参数名称的大小



我在页面加载事件中动态地在数据网格视图中添加数据。但是我收到一个错误,说索引超出了范围。("必须是非负数且小于 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 链接

网格没有行。您一定没有绑定它,或者您正在超过它获得的行数。

  1. 请确保在访问网格行之前绑定网格。

  2. 确保不要访问不存在的行索引。

您似乎只添加了一行。因此,您只能访问第 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();三次。

相关内容

  • 没有找到相关文章

最新更新