DataGridView
を追跡するために を使用していList<myObject>
ます。設定するには、次の foreach ループを使用します。
foreach (myObject object in myList)
{
if (object.Status == Status.Available)
{
myDataGridView.Rows.Add(object.Name, object.Status.ToString());
}
}
次に、イベントを使用して、選択した行のオブジェクトの新しいフォームを作成します。
void myDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
var index = myList[myDataGridView.CurrentRow.Index];
myForm form = new myForm(index);
}
したがって、リスト内のアイテムのステータスが変更されるまで、これは問題なく機能します。
myList[10].Status = Status.Unavailable;
myDataGridView
が更新されると、行インデックスを使用して 10 を超える行の正しいフォームを開くことができなくなりました。どうすればよいか途方に暮れています。
インデックスが一致しなくなった場合でも、正しいフォームを開く方法を誰か教えてもらえますか?
編集:myList
ゲーム内のキャラクターを保持します。一部はレンタル可能で、一部はレンタル可能ではありません。myDataGridView
ステータスが のものだけを入力する必要がありますAvailable
。