さて、まだ開いていない場合は、新しいフォームを開きたいと思います。そのため、フォームのタイトルまたはテキストに基づいてフォームをチェックします。これまでのところ、フォームが開き、既に開いている場合は前面に移動するだけで機能します。しかし、私の問題は、開いていない場合に新しいインスタンスを作成しようとすると、「コレクションが変更されました。列挙操作が実行されない可能性があります」というメッセージが表示されることです。そして、私は一生、理由を理解できません。どんな助けでも大歓迎です。
foreach (DataRow iRow in chatcheck.Rows)
{
FormCollection fc = Application.OpenForms;
foreach (Form f in fc)
{
if (f.Text != ChatReader["Sender"].ToString())
{
ChatBox chat = new ChatBox();
Connection.ConnectionStrings.chatopen = ChatReader["Sender"].ToString();
chat.Text = Connection.ConnectionStrings.chatopen;
chat.Show();
chat.BringToFront();
}
else if (f.Text == ChatReader["Sender"].ToString())
{
f.BringToFront();
}
}
}