繁体   English   中英

ArgumentOutOfRangeException 是未处理的 C# 错误

[英]ArgumentOutOfRangeException was Unhandled C# error

InvalidArgument='4' 的值对 '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=Value of '4'

“我的 lvnames.Items 有 4 列”

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

lvnames.Items[x].SubItems[4]

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM