ArgumentOutOfRangeException是未处理的C#错误

时间:2014-04-08 02:10:59

标签: c# exception invalid-argument

InvalidArgument ='4'的值对'index'无效。 参数名称:index

这是我的代码

   if (lvnames.Items.Count > 0)
   {
         for (int x = 0; x < lvScratch.Items.Count; x++)
         {
           **lvnames.Items[x].SubItems[4].Text = lvnamestemp.Items[x].SubItems[0].Text;**
         }
   }
   else
   {

            MessageBox.Show("No Record", "Empty", MessageBoxButtons.OK, MessageBoxIcon.Information);

   }

我的lvnames.Items有4个列 而我的lvnamestemp有3列

我在运行代码时出现错误InvalidArgument =粗体代码的值为'4'

2 个答案:

答案 0 :(得分:1)

&#34;我的lvnames.Items有4列&#34;

但您使用以下代码访问第5列:

lvnames.Items[x].SubItems[4]

0 1 2 3 4(4是第五项)。

答案 1 :(得分:0)

几乎所有的数组和集合都是基于零的.NET。 ListView中的实际列数与ListViewItem中的子项数量无关;重要的是你添加的子项目的数量。通常它们是相同的。如果你有四列,那么你可能会添加四个子项,因此它们将位于索引0,1,2和3.显然4不是一个有效的索引。