В точечных формах Windows как сделать паузу в форме, не переводя поток формы в спящий режим? - PullRequest
0 голосов
/ 02 декабря 2010

Проблема в том, что я не хочу использовать Threading.Sleep (1000), потому что мне нужно, чтобы поток оставался в живых, просто сделайте паузу перед выполнением следующей строки кода, не позволяя пользователю нажимать что-либо на форме во время паузы.Самым простым способом, который я мог придумать, было открытие диалогового окна самозакрывающегося по времени с непрозрачностью 0. Есть ли лучший способ получить тот же результат?

Ответы [ 3 ]

1 голос
/ 02 декабря 2010

Вы можете установить Enabled = false; и использовать таймер для установки значения true позднее.

0 голосов
/ 02 декабря 2010

Есть несколько способов:

  • Отключите всю форму, выполните обработку и снова включите ее. (Используйте Form.Enabled свойство.)

  • Показать модальное диалоговое окно без опций, чтобы закрыть его или переместить (полностью заблокировав) с сообщением типа «Загрузка» или «Обработка», сделайте свое дело и закройте его.

0 голосов
/ 02 декабря 2010

Установите Enabled в false, а затем через некоторое время установите его обратно в true. Вы можете сделать это в отдельном потоке. Также рассмотрите возможность изменения курсора на курсор ожидания.

...