C #, как я могу открыть окно, чтобы обновить пользователя на прогресс? - PullRequest
0 голосов
/ 14 июля 2011

Я хочу открыть окно, в котором будет отображаться некоторый текст, например «Проверка ввода», и удерживать его открытым до завершения метода.Я не могу сделать это с окном сообщений.Есть идеи, ребята?

Ответы [ 3 ]

1 голос
/ 14 июля 2011

Если я неправильно понял, это звучит немного жестоко для пользователя, но вы могли бы сделать что-то вроде этого:

A MessageBox - это просто стандартная форма Windows, отображаемая какмодальный диалог.Если вам не нравятся элементы управления, отображаемые в форме, вы можете создать свою собственную форму и показать ее пользователю в виде модального диалога с помощью метода ShowDialog:

MyDialog dialog = new MyDialog();
dialig.ShowDialog();

Ваша MyDialog форма может либо выполнить саму проверку, либо ответить на уведомление о том, что проверка завершена.Пока диалоговое окно не будет закрыто, пользователь не сможет взаимодействовать с остальной частью приложения (так же, как при отображении окна сообщения), и диалоговое окно может даже отключить кнопки / запретить пользователю закрывать его до тех пор, пока проверка не пройдет успешно.

Если вы сделаете это, и ваше модальное диалоговое окно не выполнит проверку, вы должны знать, что вам потребуется выполнить проверку в фоновом потоке, поскольку поток пользовательского интерфейса будет связан, отображая модальноедиалог.

0 голосов
/ 14 июля 2011

В зависимости от контекста вашего приложения вы можете подобрать пример @Jethro или

Создать свой FormWaiting:Form, сделать его topmost и вызвать Show(), один раз ваш методЗакончив исполнение, закройте его.

Есть много других вещей, которые вы можете сделать, но это зависит от вашего конкретного контекста, который не очень понятен из поста.

Надеюсь, это поможет.

С уважением.

0 голосов
/ 14 июля 2011

Вы можете создать базовую форму и сделать что-то вроде этого.

this.Enabled = false;
FormWaiting frm = new FormWaiting();
frm.Show();

Thread.Sleep(1000000); //Place holder for long operation.
frm.Close();
this.Enabled = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...