行のタグIDを使用してリストビューから行を削除するにはどうすればよいですか?
3 に答える
削除するListViewItem.Remove
メソッドを呼び出すことができます。ListViewItem
このメソッドは、アイテムを含むListViewコントロールのListView.ListViewItemCollectionのRemoveメソッドと機能が似ています。Removeメソッドを使用して、ListViewコントロールからアイテムを削除できます。この機能は、アイテムを別のListViewコントロールに移動する場合、またはアプリケーション内からアイテムを削除するというユーザーからの要求に基づいてアイテムを削除する必要がある場合に役立ちます。
たとえば、のすべてを循環しListViewItems
、ListView
を見て、Tag
削除Remove
するアイテムを確認できます。
// Create the ListView and ListViewItem.
ListView myList = new ListView();
ListViewItem myItem = new ListViewItem { Tag = "MyTag", Text = "My ListViewItem" };
myList.Items.Add(item);
// Look for the ListViewItem with a Tag of "MyTag" and remove it.
foreach (ListViewItem item in myList.Items) {
if (String.CompareOrdinal(item.Tag as string, "MyTag") == 0) {
i.Remove();
break;
}
}
この例は、最初に一致するアイテムを削除した後に終了します。削除する必要のある一致するものが複数ある場合はListViewItems
、それらのコレクションを作成し、その後それらを削除する必要があります。
これが私がした簡単な機能です。linqを利用します。 myTag
任意のオブジェクトにすることができます。
string myTag = "aaa";
List<ListViewItem> lst = listView1.Items.Cast<ListViewItem>().Where(i => i.Tag == myTag).ToList();
if (lst.Count != 0)
{
listView1.Items.Remove(lst.First());
}
将来的には、質問に費やした努力の量をコミュニティに示す必要があります。何を試したか、いくつかの例を教えてください。ただし、以下はあなたの質問に答えるのに役立つはずのいくつかのコードです。
int id = 0;
foreach (ListViewItem item in listView1.Items)
{
if((int)item.Tag == id)
{
item.Remove();
break;
}
}
注:これは、タグが整数であることを前提としています。これが常に当てはまるとは限らない場合は、エラーから保護するためのコードを追加する必要があります。