Я создал простое приложение для отправки и получения сообщений с использованием C# и библиотеки GsmComm. если есть новое входящее сообщение, мое приложение покажет messageBox, что появилось новое сообщение. моя проблема в том, что когда у меня появилось много нового сообщения, messageBox будет показывать столько сообщений MessageBox. Как я могу показать только последнее окно с помощью кода?Закрыть MessageBox при поступлении нового сообщения
это mycode:
private void comm_MessageReceived(object sender, MessageReceivedEventArgs e)
{
var obj = e.IndicationObject;
if (obj is MemoryLocation)
{
var loc = (MemoryLocation)obj;
var msg = string.Format("New message received in storage \"{0}\", index {1}.",
loc.Storage, loc.Index);
MessageBox.Show(msg);
return;
}
}
я запутать, чтобы исправить это, я пытался другим способом, используя форму, чтобы показать новый входящий Notif form1.showDialog();
но та же проблема первая форма показа не может быть закрыт, когда новая форма открыт. это моя ссылка: https://stackoverflow.com/a/13445167/3319555
Я действительно спасибо, если кто-нибудь может помочь me..thanks
Я попробовал, но когда я запустил свой проект, я получил первое сообщение, но когда второе сообщение поступило, я получил сообщение, подобное этой операции кросс-потока, недействительно: «MyForm» был доступен из потока, отличного от потока, который был создан на 'любые предлагают? – aminvincent
Вам нужно создать безопасный вызов в форме. Закрыть, чтобы он запускался в потоке пользовательского интерфейса формы. – khargoosh
Как я могу это сделать? Я не знаю, как это сделать ... – aminvincent