首页 / C# / C#在多表单应用程序中关闭特定表单
C#在多表单应用程序中关闭特定表单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#在多表单应用程序中关闭特定表单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1256字,纯文字阅读大概需要2分钟。
内容图文
![C#在多表单应用程序中关闭特定表单](/upload/InfoBanner/zyjiaocheng/815/68173c91a18d4239adf907e7f1cbe314.jpg)
我希望你能帮我这个.我的应用程序正在监视数据库中的警报.当数据库中出现警报时,我的应用程序会将其添加到datagridview中的主窗体中,并且根据其优先级,它还将使用该事件创建一个小的winform弹出窗口.
在datagridview中有一个按钮,用于将警报标记为“已见”,然后它将更新数据库,并且它将从列表中消失.但是,此活动的弹出窗体仍然是打开的.
有谁知道如何关闭此表格?我需要一种方法来查找可能的多个警报表单之间的特定表单.
我到目前为止最接近的是以下代码:
private void closeForm(int id)
{
foreach (Form f in Application.OpenForms)
{
if (Convert.ToString(id) == f.Name)
{
this.Close();
}
}
}
直到它关闭正确的形式为止.然后它给出一个错误,说“收集已被修改;枚举操作可能无法执行”.这有点意义,但我根本无法找到另一种方法.
我有一个名为Alert的winform类,它创建了新的表单.如您所见,他们将获得标准文本“警报”和基于警报ID的唯一名称.
Alert alertform = new Alert(id);
alertform.Name = formid;
alertform.Text = "Alarm";
alertform.Show();
我希望有人有一些好主意我怎么能这样做.我已经搜索过,但无法真正找到一种简单而优雅的方法来做到这一点.
解决方法:
你需要添加休息;关闭表单后进入循环.当您关闭表单(该表单从集合中删除)时,将修改该集合,从而使foreach循环无效.如果你不打电话给f.Close,而不是这个.关闭?
private void closeForm(int id)
{
foreach (Form f in Application.OpenForms)
if (Convert.ToString(id) == f.Name)
{
f.Close();
break;
}
}
内容总结
以上是互联网集市为您收集整理的C#在多表单应用程序中关闭特定表单全部内容,希望文章能够帮你解决C#在多表单应用程序中关闭特定表单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。