FlowLayoutPanelがあり、ID(文字列)のリストと現在のプログレスバー(整数)の位置からProgressBarsで更新したいと思います。このリストをリストと呼びます。
はFlowLayoutPanel.Controls
リストと比較する必要があります:
FlowLayoutPanel.Controls
新しいIDが検出された場合は、そのID(名前)を使用してコレクションに新しいコントロールを作成する必要があります。- コレクション内のコントロールのリストに
FlowLayoutPanel.Controls
対応する名前がない場合は、コントロールを削除して破棄する必要があります。 - 両方のコレクションにあるコントロールを更新する必要があります(リストaの整数からのProgressBarの進行状況)
私が困っているのは、FlowLayoutPanel.Controls
コレクションに一般的なリストほど多くのメソッドがないため、インターネットからのガイドを実際にたどることができないことです。
私がこれをどのように行うべきか私を助けてくれますか?
ありがとう!
編集:DJ KRAZEコメントへの返信:私はリストと似たようなものを作りましたが、私が言ったように、コントロールコレクションにはリストのようにいくつかのメソッドがありません。これが私のコードです(動作しない可能性があります。理解しやすいように書き直しました):
//古いものを削除します
// Make a new list of IDs, where none of the IDs from myList1 can be found in myList2
var remove = myList1.Where(f => !myList2.Any(g => g == f.ID));
//Do some operation for the object which is about to get removed
foreach (Object obj in remove)
{
// Some operation
}
// remove from list
myList1.RemoveAll(i => remove.Contains(i));
//重複を削除します
// Remove Duplicates from myList2, so only the remaining object are to be started
myList2.RemoveAll(f => myList2.Any(g => g.ID == f));
//myList2からmyList1に残りのオブジェクトを追加します
foreach(Object obj in myList2)
{
// add to myList1 and do some operation, like starting it
}