Как отобразить окно сообщения без каких-либо кнопок в 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.

Создать пользовательскую форму и написать собственное поведение

Один из способов сделать это - создать рабочий класс, который вызывает событие по его окончании.

выполнить рабочий класс в новой команде, чтобы он стал фоновым.

создайте модальную форму с методом, чтобы закрыть ее как обработчик события для "законченного" события. Таким образом, пользовательский интерфейс все еще работает и отвечает, и форма будет закрыта после завершения рабочего потока.

Создайте пользовательскую форму, установите для нее минимальные стили и т. Д. Убедитесь, что она знает, когда процесс завершен, например, передавая ссылку на процесс и проверяя ее время от времени.

Другие вопросы по тегам