可以将文本添加到现有ListViewSubItems

时间:2016-09-09 21:17:20

标签: c++ winforms listviewitem

我正在尝试在项目已添加到视图本身后填充listView的子项。这一直在抛出一个错误,我不知道是不是因为我做错了,或者在创建后加入子项是不可能的。

我创建了一个带有listView的窗体,其上非常富有想象力地命名为listView1,其中填充了组件以及可以对它们执行的可能的哈希函数。 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
        }
      }
    }
  }

按原样运行会产生以下弹出窗口 listView1ErrorMessage

我是否只需要再次创建所有项目,然后在向其添加“新”项目之前清除listView1?或者这段代码是否可以挽救?

1 个答案:

答案 0 :(得分:1)

默认情况下,

ListView.SubItems集合为空。您应该首先使用例如Add子项集合方法添加子项。然后,在添加了一些子项后,可以根据需要使用索引更改子项的文本。

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

当处理集合中的子项时,对子项使用从1开始的索引,因为索引0是拥有集合的项。

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