【发布时间】:2015-03-15 22:08:58
【问题描述】:
我正在尝试从 listView1 中删除多个选定的项目,但似乎在删除一个项目后,列表没有得到更新,因此 程序出现故障,即删除了一些错误的项目 并跳过一些正确的。
删除一项后,GUI 框会更新,即该项从框中消失。但是第一个之后的下一个不是应该的。
示例:我选择索引为 0、1、3、4 的项目
结果: 0被删除,然后3被删除,然后5被删除,即使我没有选择5。
注意:项目选择正确(我测试过)。问题出在下面的代码中。
这是我的代码:
private: System::Void delSelected_LinkClicked(System::Object^ sender, System::Windows::Forms::LinkLabelLinkClickedEventArgs^ e)
{
int count = listView1->SelectedItems->Count;
ListView::SelectedIndexCollection^ indexes = this->listView1->SelectedIndices;
System::Collections::IEnumerator^ myEnum1 = indexes->GetEnumerator();
MessageBox::Show(count.ToString(), "MessageBox Test", MessageBoxButtons::OK, MessageBoxIcon::Information);
while (myEnum1->MoveNext()) {
int index = safe_cast<int>(myEnum1->Current);
//MessageBox::Show(index.ToString()+". "+listView1->Items[index]->Text, "MessageBox Test", MessageBoxButtons::OK, MessageBoxIcon::Information);
listView1->Items->Remove(listView1->Items[index]);
}
}
我想知道在删除一个项目或任何其他解决方法后更新列表的方法。
谢谢。
【问题讨论】:
标签: .net winforms listview visual-c++