使用DataGrideView建立表格出现错误:
System.ArgumentOutOfRangeException: '插入索引已超出范围。必须为非负值,并且必须小于或等于大小。
Arg_ParamName_Name'
源代码如下:
private void DataGrideView1_Load(object sender, EventArgs e)
{
var col = new DataGridViewColumn();
//dataGridView1.ColumnCount = 6;
//要插入列的类型
col.CellTemplate = new DataGridViewTextBoxCell();
col.Name = "colName";
col.HeaderText = "显示名称";
dataGridView1.Columns.Insert(4, col); // 插入列的位置不能少于列的个数
//插入列赋值
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].Cells["colName"].Value = "爱琴海";
}
}
问题原因:
对于没有绑定数据源的DataGridView,先要设置对应的列的数目,比如:
dataGridView1.ColumnCount = 5;
然后才能接着去用各种方式添加对应的数据。
而如果没有初始化对应的列数,则会导致错误,后面的数据添加的代码,根本没法执行的。
ps:DataGridView的数据来源有两种:
- 绑定DataSource
- 通过代码(手工)动态添加数据