我正在尝试在项目已添加到视图本身后填充listView
的子项。这一直在抛出一个错误,我不知道是不是因为我做错了,或者在创建后加入子项是不可能的。
我创建了一个带有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
}
}
}
}
我是否只需要再次创建所有项目,然后在向其添加“新”项目之前清除listView1
?或者这段代码是否可以挽救?
答案 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";