2013-04-03 2 views
1

У меня есть приложение, которое управляет некоторыми файлами в определенном вопросе и имеет progressbar и текстовое поле. Когда я отлаживаю (VS2010), окно приложения не отображается, но приложение выполняет всю работу, на которую оно полагается. Если бы я хотел создать невидимое приложение winform, мне бы, вероятно, пришлось бы вырвать мои мозги, чтобы сделать это. Теперь у меня есть один, которого я не хочу. Как насчет этого? Любые идеи, как это исправить?Winform не отображается во время отладки

+1

Скорее всего, вы выполняете работу в форме инициализации в той же теме, что и GUI. Форма появится, когда работа будет выполнена, если приложение не выйдет автоматически. –

+0

@John Willemse Это точно, что я сделал. Можно ли удалить всю работу из инициализации в одном блоке? –

+0

Предпочтительно начать работу после взаимодействия с пользователем, например. нажмите кнопку. Затем вы можете поместить код «work» в метод, который вы можете вызвать. Затем этот метод должен выполнять работу в отдельном потоке, так что индикатор прогресса может быть обновлен по мере необходимости. Исследование класса «BackGroundWorker» для получения дополнительной информации. –

ответ

1

OP выполняет работу в фазе инициализации формы. На этом этапе форма еще не показана и не будет показана до тех пор, пока все работы не будут выполнены.

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

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