Как сделать, чтобы повторный MessageBox не выводился? - C#
Формулировка задачи:
Извиняюсь, если не совсем правильно сформулировал вопрос.
Есть таймер, который дергает функцию
Как сделать, чтобы пока сообщение на экране, новый MessageBox по данному объекту не показывать? Если в цикле появился новый объект,которого нет, его выводим.
При этом на MessageBox должно идти время обратного отсчета на 1 минуту, по истечении времени, оно должно само закрываться. Но это уже другой вопрос.
private void MonitoringTime() { List <GDataGridRow> rows = dataGrid.Rows.FindAll(x => ((MonitoringSite)x.Key).Before < Utils.Time.TimeUtils.UnixToDate(Utils.Time.TimeUtils.ServerUnixTime)); if (rows != null) { for(int i =0; i < rows.Count; i++) { MessageBox.Show("Истекло время для " + ((MonitoringSite)x.Key).Name); } } }
Буду признателен любому совету. Заранее спасибо.
Решение задачи: «Как сделать, чтобы повторный MessageBox не выводился?»
textual
Листинг программы
private bool IsMessageBoxShowing; private void MonitoringTime() { List <GDataGridRow> rows = dataGrid.Rows.FindAll(x => ((MonitoringSite)x.Key).Before < Utils.Time.TimeUtils.UnixToDate(Utils.Time.TimeUtils.ServerUnixTime)); if (rows != null) { for(int i =0; i < rows.Count; i++) { // Если вы вызываете MonitoringTime(); один раз // и условие для цикла выполнится, то сообщения будут выводить друг за другом. // Если вам это нужно избежать, добавьте break; после соощения. // Если вы вызываете метод параллельно, тогда будет только 1 сообщение. if(!IsMessageBoxShowing) { IsMessageBoxShowing = true; MessageBox.Show("Истекло время для " + ((MonitoringSite)x.Key).Name); IsMessageBoxShowing = false; // break; } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д