0

以下を使用して 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();
}

クラッシュしないように、削除機能を何に置き換えますか?

編集:これは、listView3 に追加する方法です...

    ListViewItem^ subitem = gcnew ListViewItem();

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

    listView3->Items->Add(subitem);
4

1 に答える 1

0

そのインデックスの要素が null 参照である場合は、別のアプローチを使用する必要がある場合があります。

次のように、アイテムのコレクションの RemoveAt 機能を使用してみてください。

if (e->Index >= 0 && e->Index < listView3->Items->Count)
{        
    listView3->Items->RemoveAt(e->Index);
}
于 2013-02-13T21:28:17.607 に答える