2009-12-31 3 views
0

У меня есть приложение WinForm (.net 3.5), что при первом выборе Person он извлекает все данные этого человека для всего Плана. Это может занять до 5 секунд. Мне нужно показать своим пользователям (только в доме), что программа загружается/работает каким-то образом. Мне также нужно держать их на этом экране, пока он не закончится. Сделайте это с помощью приложения, которое они могли бы прыгать на любое количество мест в приложении.Показать прогресс до завершения операции winform

Я подумал, что, возможно, Background Worker - это то, что я хочу, но потому что я хочу, чтобы они оставались там, где они находятся, пока не загрузится. Я не уверен ().

Приложение для моего приложения заполняет ~ 20 элементов управления пользователями. Каждый пользовательский элемент управления запрашивает локальную базу данных SQL Express для его информации. Таким образом, у меня есть метод в моей родительской форме, который проходит, и «Покрасит» все элементы управления пользователя, и это то, чего они ждут.

Идеи? Какой у меня лучший выбор.

ответ

3

Вы можете создать ProgressBarForm с индикатором выполнения. Сделайте ShowDialog, чтобы сделать его модальным.

И подпишитесь на ReportProgress of BackgroundWorker, чтобы сделать прогресс прогресса.

2

BackgroundWorker - это хороший выбор, для этого - он предназначен для сценариев, таких как вы описываете.

+0

Я мог бы просто задрать рабочего, чтобы появился индикатор прогресса, и это сохранит их там? –

+0

Это один из способов сделать это, открыв модальный диалог до тех пор, пока фон работника не закончится. –

+0

Это неправильный способ сделать это. Пользовательский интерфейс все еще мертв, заголовок формы изменится на «Не реагировать». BGW должен делать тяжелый подъем. –

0

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

Смежные вопросы