可以将文本添加到现有的 ListView 子项中

Can text be added to existing ListViewSubItems

我试图在项目已添加到视图本身后填充 listView 的子项目。这一直在抛出一个错误,我不知道是因为我做错了还是无法在创建后添加到子项。

我创建了一个 windows 表单,上面有一个 listView,非常富有想象力地命名为 listView1,其中填充了组件和可以对它们执行的可能的散列函数。

这很好用,并且按照我的意愿进行了填充。现在,用户单击一个按钮,该按钮应该 运行 每个组件上的那些哈希函数,并在完成时将相应的框填充到每个组件的右侧。

我似乎无法填写每个方框。我的代码:

 //Put the verification in the appropriate column, and line
 //Iterate through each row until the appropriate one is found
 for(int j=0;j<this->listView1->Items->Count;j++){
   //When the row matches the component that was just verified, add things to that row
   if(this->listView1->Items[j]->Text == response->componentID){
      //Now that the row has been successfully found, find the column
      for(int k=1;k<this->listView1->Columns->Count;k++){
        //When the column matches the algorithm that was just ran, add the result
        if(this->listView1->Columns[k]->Text == response->algorithmType.ToString()){
           //****The line giving me trouble
           this->listView1->Items[j]->SubItems[k]->Text = response->verifyResult;
           //****End of troublesome line
        }
      }
    }
  }

运行 原样导致以下弹出窗口

我是否只需要重新创建所有项目,然后在向其中添加 "new" 项目之前清除 listView1?还是这段代码可以挽救?

ListView.SubItems collection is empty by default. You should first add sub items using for example Add子项收集方法。然后在添加了一些子项之后,您可以在需要时使用其索引更改子项的文本。

this->listView1->Items[i]->SubItems->Add("Some text for SubItem");

此外,在处理集合中的子项时,对子项使用基于 1 的索引,因为索引 0 是拥有集合的项。

this->listView1->Items[i]->SubItems[1]->Text = "Some new text";