Dr *_*her 2 c# datatable foreach openform sqldataadapter
好的,所以我想打开一个新表格,如果还没有打开.所以我根据表格的标题或文字检查表格.现在,到目前为止,它的工作原理,如表格打开,如果它已经打开,它只是将它带到前面.但我的问题是,如果它没有打开,我尝试创建它的新实例,它会抛出"收集被修改;枚举操作可能无法执行".而我无法为我的生活找出原因.任何帮助表示赞赏.
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
不要使用foreacha for-loop:
for (int i = 0; i < Application.OpenForms.Count; i++ )
{
Form f = Application.OpenForms[i];
if (f.Text != ChatReader["Sender"].ToString())
{
//...
chat.Show();
chat.BringToFront();
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
您可以foreach在枚举期间更改a的基础集合.但如果您创建一个新表单并在那里显示它,就会发生这种情况.您将另一个表单添加到open-collection.
| 归档时间: |
|
| 查看次数: |
20832 次 |
| 最近记录: |