我正在尝试使用for循环从datagridview获取数据,即从datagrid中的行逐个获取数据并放入listview。但我有一个例外 "指数超出范围。必须是非负数且小于集合参数名称的大小:index" 。 datagridview中的数据来自excel表。我有以下代码:
private void button1_Click(object sender, EventArgs e)
{
listView1.Visible = true;
listView1.View = View.Details;
listView1.GridLines = true;
listView1.FullRowSelect = true;
//Add column header
listView1.Columns.Add("Recipent Number", 500);
listView1.Columns.Add("Status", 100);
for (int i = 0; i <= dataGridView1.RowCount; i++)
{
//Add items in the listview
string[] arr = new string[2];
ListViewItem itm;
//Add first item
arr[0] = dataGridView1.Rows[i+1].Cells["F1"].Value.ToString();
arr[1] = "Send";
itm = new ListViewItem(arr);
listView1.Items.Add(itm);
}
}
答案 0 :(得分:3)
你的for循环条件中有一个off-by-one错误。
将其更改为使用“&lt;”而不是“&lt; =”,如下所示。
for (int i = 0; i < dataGridView1.RowCount; i++)
{
//Add items in the listview
string[] arr = new string[2];
ListViewItem itm;
//Add first item
arr[0] = dataGridView1.Rows[i+1].Cells["F1"].Value.ToString();
arr[1] = "Send";
itm = new ListViewItem(arr);
listView1.Items.Add(itm);
}