複数のスレッドから更新されているlistViewがあり、スレッドのステータスとIDが表示されています。スレッドが終了すると、アイテムは削除されます。
私の問題は、listView を更新するために使用する方法は、listViews ID を使用することです (更新するサブアイテムを見つけるため)。さて、listView アイテムが削除され始めると、特定のスレッドの ID が変更されたため、問題が発生します..
更新と削除に現在使用しているコードは次のとおりです。
private void AddToListViewThread(string user, string status, int threadNumber)
{
Invoke(new MethodInvoker(
delegate
{
listView2.BeginUpdate();
this.listView2.Items[threadNumber].SubItems[1].Text = user;
this.listView2.Items[threadNumber].SubItems[2].Text = status;
listView2.EndUpdate();
}
));
}
private void RemoveFromListViewThread(int threadNumber)
{
Invoke(new
MethodInvoker(
delegate
{
listView2.BeginUpdate();
this.listView2.Items.RemoveAt(threadNumber);
listView2.EndUpdate();
}
));
}
threadNumber をアイテムのインデックスとして使用できないことを理解しました (アイテムが削除されるため) これを達成できる他の方法はありますか? おそらく「ユーザー」サブアイテムをターゲットにすることでしょうか?それからサブアイテムを取得しますか?