Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# InvalidArgument=的值';6';对于索引无效。参数名称:索引_C#_Winforms_Listview - Fatal编程技术网

C# InvalidArgument=的值';6';对于索引无效。参数名称:索引

C# InvalidArgument=的值';6';对于索引无效。参数名称:索引,c#,winforms,listview,C#,Winforms,Listview,我创建了一个包含8列的Listview控件。当我需要从项的子项检索文本时,我使用以下代码: foreach (ListViewItem item in listViewStatus.Items) { if (item.Tag == f) { /* Use locking to synchronise across mutilple thread calls. */

我创建了一个包含8列的Listview控件。当我需要从项的子项检索文本时,我使用以下代码:

foreach (ListViewItem item in listViewStatus.Items)
            {
                if (item.Tag == f)
                {
                    /* Use locking to synchronise across mutilple thread calls. */
                    lock (_lockObject)
                    {
                        item.SubItems[6].Text = Status;
                    }
                    break;
                }
            }

它显示了一个例外。但当我将item.SubItems[6]替换为item.SubItems[5]时,Text会起作用。如何解决此问题?

显然,子项中最多有6列

如果只创建了6列,则值为0-5;意思是6无效。

这是一个典型的“逐个关闭”错误场景

指标有两种:零基和一基。C#是一种基于零的索引语言。我假设您是第一次学习一种语言,或者是第一次学习一种零基语言——否则,我就没有抓住问题的重点,我向您道歉。:)

请参阅Wikipedia,关闭一个错误:

ArgumentOutOfRange异常由运行时在意识到列表中没有第7项时引发。由于列表在任何时候都可能包含任意数量的值,因此无法在编译时捕获此类错误(不使用启发式)

TLRD

零基(C#):

一种(其他一些语言):


6
表示列索引而不是行索引。

检查item.SubItems有多少次?可能是item.SubItems.Count()?它显示6。但是我有8个专栏哦。当我创建子项时,我只创建6个:d您是否已通过listView.SubItems.Add()用子项填写了所有列?我不确定您的问题是否存在,但如果这是WPF或Winforms(看起来是这样),那么首先不应该有多个线程访问您的listView。WPF和Winforms的基本原则是,只有创建者线程才能访问控件。这很可能也与你的问题有关。
... = myList[0]; // This is a zero-based indexer.
... = myList[1];
... = myList[2];
... = myList[3];
... = myList[4];
... = myList[5]; // This is the 6th item, although the index is 5.
... = myList[1]; // This is a one-based indexer.
... = myList[2];
... = myList[3];
... = myList[4];
... = myList[5];
... = myList[6]; // This is the 6th item, and the index is 6.
SubItems[6]