Как отобразить окно сообщения без каких-либо кнопок в C#
Я пытаюсь показать СООБЩЕНИЕ пользователю во время выполнения операции. СООБЩЕНИЕ не покажет ни одной кнопки. Просто СООБЩЕНИЕ (текст) и, возможно, фоновое изображение.
Проблема заключается в следующем:
- MessageBox, кажется, не является хорошим элементом управления (из-за кнопки и он блокирует запущенный процесс).
- Form.ShowDialog () также блокирует запущенный процесс. Я не знаю что делать.
- Я хочу показать сообщение, запустить мой процесс и утилизировать сообщение после завершения процесса.
Как этого добиться в C#
?
4 ответа
Создайте простую форму с сообщением (или предоставьте открытое свойство, чтобы можно было изменить сообщение, или конструктор с параметром сообщения, чтобы передать его) и покажите форму, используя эту перегрузку Show. Затем отключите (всю) оригинальную (владелец) форму (или просто отключите элементы управления, которые вам не нужны).
Итак, в вашей "основной" форме сделайте это:
Form f = new MessageForm();
f.Show(this); //Make sure we're the owner
this.Enabled = false; //Disable ourselves
//Do processing here
this.Enabled = true; //We're done, enable ourselves
f.Close(); //Dispose message form
Также рассмотрите возможность использования BackgroundWorker.
Создать пользовательскую форму и написать собственное поведение
Один из способов сделать это - создать рабочий класс, который вызывает событие по его окончании.
выполнить рабочий класс в новой команде, чтобы он стал фоновым.
создайте модальную форму с методом, чтобы закрыть ее как обработчик события для "законченного" события. Таким образом, пользовательский интерфейс все еще работает и отвечает, и форма будет закрыта после завершения рабочего потока.
Создайте пользовательскую форму, установите для нее минимальные стили и т. Д. Убедитесь, что она знает, когда процесс завершен, например, передавая ссылку на процесс и проверяя ее время от времени.