如何通过代码填充DataGridView并解决索引超出范围报错
DataGridView索引越界问题解决方案
错误原因
你触发Index was out of range报错的核心原因是对WinForm中DataGridView的索引规则使用错误:
DataGridView的单元格访问规则为控件名[列索引, 行索引],第一个参数为列序号,第二个参数为行序号- 所有索引默认从0开始计数,你添加了4个列,列的有效索引范围为
0~3,第一行的有效索引为0
你之前的代码同时犯了两个错误:行列索引顺序写反、索引起始值用了1而非0,用到了不存在的索引位1(行)、4(列),自然触发越界报错。
正确代码逻辑说明
你补充的可运行代码完全符合索引规则:
// 第0列(Income列)、第0行(第一行)赋值 DGVpayStub[0, 0].Value = "Gross Wages"; // 第1列(Rate列)、第0行赋值 DGVpayStub[1, 0].Value = "0"; // 第2列(Hours列)、第0行赋值 DGVpayStub[2, 0].Value = "0"; // 第3列(CurrentTotal列)、第0行赋值变量 DGVpayStub[3, 0].Value = salary;
额外注意事项
如果赋值前控件没有预先生成空白行,需要先调用以下代码新增行后再赋值,避免空集合也触发越界报错:
// 新增1行空白行 DGVpayStub.Rows.Add();
内容的提问来源于stack exchange,提问作者LucOliSil
相关产品推荐
相关产品推荐

