2015-05-26 7 views
0

Я использую элемент управления WebBrowser для моего проекта C#. Я пытаюсь интегрировать GeckoFX вместо WebBrowser. Поскольку я всегда меняю входные данные в WebBrowser, я должен дождаться загрузки сайта полностью. Вот почему, я использую следующий метод:Проверить ReadyState в GeckoFX

private void navigateBrowser(string URL) 
     { 
      wb.Navigate(URL); 
      while (wb.ReadyState != WebBrowserReadyState.Complete) 
      { 
       Thread.Sleep(1); 
       Application.DoEvents(); 
      } 
     } 

я изменил этот метод GeckoFX как это: частная пустота navigateBrowser (строка URL)

private void navigateBrowser(string URL) 
     { 
      wb.Navigate(URL); 

    while (wb.Document.ReadyState != "complete") 
      { 
       Application.DoEvents(); 
      } 
      while (wb.IsBusy) 
      { 
       Application.DoEvents(); 
      } 
} 

я называю navigateBrowser ("http://facebook.com"), а затем Я заполняю форму для входа. После того, как я отправлю форму, мне нужно зайти на другой сайт (в linkedin.com), я снова вызываю navigateBrowser («http://linkedin.com»), когда пытаюсь вызвать какой-то элемент из geckowebbrowser, я получаю сообщение об ошибке «Ссылка на объект не установлена ​​на экземпляр объекта. ". Я проверяю фактический URL-адрес geckowebbrowser, это все еще facebook.com, но я должен быть связан вinin, потому что я назвал linkedin.com.

Что может быть проблема? Как я могу решить эту проблему?

ответ

0

Используйте событие DocumentCompleted для веб-браузера.

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

Итак, в hanlder событий DocumentCompleted вызовите этот метод - это позволит убедиться, что страница уже загружена.

Цикл Application.DoEvents() не является хорошей идеей для ожидания при загрузке страницы. Например, если что-то закрывает/сбрасывает приложение во время цикла, оно все равно будет работать и не будет закрываться.

С уважением

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

  • Нет связанных вопросов^_^