我使用以下内容清除整个listView

void Form1::button2_Click(System::Object^  sender, System::EventArgs^  e)
{
    ActiveControl = tabControl1->SelectedTab;

    if (listView3->Items->Count == 0)
    {
        ::MessageBox(0, "Please select data.", "Failed to clear data.", MB_OK | MB_ICONERROR);
    }
    else
    {
        listView3->Items->Clear();
    }
}

然后,我尝试使用以下内容清除选定的项目...但是它崩溃了...
void Form1::listView3_ItemCheck(System::Object^  sender, System::Windows::Forms::ItemCheckEventArgs^  e)
{
    listView3->Items[e->Index]->Remove();
}

我将用什么替换我的remove函数,以使其不会崩溃?

编辑:这就是我添加到我的listView3 ...
    ListViewItem^ subitem = gcnew ListViewItem();

    subitem->SubItems->Add(textBox2->Text);

    listView3->Items->Add(subitem);

最佳答案

如果该索引处的元素为空引用,则可能必须使用其他方法。

尝试使用项目集合的RemoveAt功能,如下所示:

if (e->Index >= 0 && e->Index < listView3->Items->Count)
{
    listView3->Items->RemoveAt(e->Index);
}

08-06 09:32