我希望你能帮我翻译这段内容。我的应用程序正在监视数据库中的警报。当数据库中出现警报时,我的应用程序将其添加到主窗体中的datagridview中,并根据其优先级创建一个小的winform弹出窗口来显示事件。
在datagridview中有一个按钮可以将警报标记为“已查看”,然后它将更新数据库并从列表中消失。但是该事件的弹出窗口仍然打开。
有人知道如何关闭此窗口吗?我需要找到可能打开的多个警报窗口中的特定窗口。
迄今为止,我最接近的代码如下:
在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();
我希望有人能给我一些好的想法,我已经搜索过,但实在找不到一个简单而优雅的方法来完成这个任务。