Я надеюсь, что вы можете помочь мне с этим. Мое приложение отслеживает базу данных для предупреждений. Когда в базе данных появляется предупреждение, мое приложение добавляет его в основную форму в виде таблицы данных, и в зависимости от его приоритета оно также создает небольшое всплывающее окно winform с событием.
В datagridview есть кнопка, чтобы пометить предупреждение как «увиденное», затем оно обновит базу данных и будет удалено из списка. Однако всплывающая форма для этого события все еще открыта.
Кто-нибудь знает, как закрыть эту форму? Мне нужен способ найти конкретную форму между возможными несколькими открытыми формами оповещений.
Ближайший, который я прошел, это следующий код:
private void closeForm(int id)
{
foreach (Form f in Application.OpenForms)
{
if (Convert.ToString(id) == f.Name)
{
this.Close();
}
}
}
Который работает до того момента, пока не закроет правильную форму. затем выдает ошибку: 1010 * «Коллекция была изменена; операция перечисления может не выполняться». Это имеет смысл, но я просто не могу найти другой способ сделать это.
У меня есть класс winform Alert
, который создает новые формы. Как вы можете видеть, они получат стандартный текст «Тревога» и уникальное имя на основе идентификатора оповещения.
Alert alertform = new Alert(id);
alertform.Name = formid;
alertform.Text = "Alarm";
alertform.Show();
Надеюсь, у кого-нибудь есть хорошие идеи, как мне это сделать. Я искал, но не могу найти простой и элегантный способ сделать это.