У меня есть приложение Visual Studio 2008.NET 2.0 WinForms, которое содержит элемент управления WebBrowser на одной из вкладок его основного TabControl. Этот веб-браузер используется только для отображения файла PDF, который распространяется вместе с приложением, и на этой вкладке нет других элементов управления, кроме самого этого элемента управления веб-браузера.
Проблема: при запуске программы главное окно приложения не установлено активным. Он должен быть нажат или выбран [Alt-Tab], прежде чем он станет активным.
Я проследил это до этих двух строк, запущенных из FormMain_Load (). Я сформировал полный путь к файлу PDF, который я хочу отобразить, и вызвал File.Exists (), чтобы убедиться, что он действительно есть (и есть):
Uri uri1 = new Uri("path\\to\\filename.pdf");
webBrowser1.Url = uri1;
Если я закомментирую 2-ю строку выше, конечно, он не загружает PDF-файл в элемент управления WebBrowser, но затем программа может нормально запускаться - ее главное окно активно (строка заголовка получает «активное окно» «Цвета) и текстовый курсор мигает в первом поле на первой вкладке, где я поместил его с TextBox.Select () в FormMain_Shown ().
Если я добавлю обратно в эту вторую строку, файл PDF будет загружен правильно, но при запуске главное окно программы неактивно (строка заголовка получает цвета «неактивного окна»). Это не проблема фокуса, но может быть связана с z-порядком. Никакие другие окна не закрывают главное окно, так как я только что запустил программу с иконки на рабочем столе, и ни одна из кнопок панели задач в нижней части экрана не отображает ни одного активного окна. Запускается нормально, не свернуто и не развернуто.
Кстати, эта вкладка, на которой живет элемент управления WebBrowser, не первая вкладка. Я только знаю, что он правильно загружает файл PDF, потому что эти строки не выдают исключение, и когда я нажимаю на эту вкладку, файл PDF отображается нормально. Кроме того, я получил последние обновления IE и версию Adobe Reader X.
Я подумал, что это может показаться странным в моей машине для разработки (Windows 7 64-битная версия Ultimate с несколькими подключаемыми модулями IDE), но пользователи с 32-битной операционной системой XP тоже сообщают об этом. Также мои виртуальные машины XP внутри 7 и Vista показывают то же самое. Как только я отключаю загрузку URL, программа запускается как активное окно, как и ожидалось.