У меня есть приложение WinForms, которое извлекает данные из веб-службы в рабочем потоке, и мне нужно отключить весь ввод данных в мое приложение, пока данные не будут загружены.
В настоящее время я создаю полупрозрачную форму и помещаю ее поверх своего приложения. Когда вызов данных завершается, я закрываю эту оверлейную форму. Это прекрасно работает, если принять во внимание, что это вызывает значительные проблемы с производительностью для пользователей, запускающих приложение через терминальные службы Я попытался сделать оверлей полностью прозрачным, но он по-прежнему вызывает две перерисовки всего окна, так что это не помогло.
Я знаю, что общая рекомендация для этого - отключить все элементы управления, но это также перерисовало бы большую часть экрана, поэтому я ищу другой способ заблокировать весь пользовательский ввод. Любая помощь будет принята с благодарностью!
ОБНОВЛЕНИЕ: я должен был упомянуть, что мы рассмотрели модальный диалог. В настоящее время мы показываем наложение, запускаем поток доступа к данным, затем создаем форму. Если нет лучшего способа заблокировать ввод (App.BlockInput () может быть хорошим), тогда мы могли бы использовать модальную идею диалога, но нам нужно было бы подождать, пока построение формы не будет завершено, и в настоящее время нет хорошего, центрального место для этого.