Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WebBrowser в C# 
:(
    Опции темы
deil
Дата 19.3.2009, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.10.2007

Репутация: нет
Всего: нет



Всем доброго времени суток!

У меня есть класс, который использует компонент WebBrowser. У класса имеется статический метод, который возвращает его объекты после получения данных, т.е. после загрузки страницы.
Никак не пойму как сделать чтобы статический метод ждал полной загрузки страницы и только после нее возвращал объект класса.

Заранее спасибо за посильную помощь.
PM MAIL   Вверх
-Mikle-
Дата 20.3.2009, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 17
Всего: 59



Если я правильно тебя понял, то можно сделать так:

Код

        private WebBrowser GetBrowser(Uri uri)
        {
            ManualResetEvent waitHandle = new ManualResetEvent(false);
            WebBrowser webBrowser = new WebBrowser();
            webBrowser.Url = uri;
            webBrowser.DocumentCompleted += delegate { waitHandle.Set(); };
            waitHandle.WaitOne();
            return webBrowser;
        }



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
avanchik
Дата 29.10.2011, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.10.2011

Репутация: нет
Всего: нет



Цитата
Код

private WebBrowser GetBrowser(Uri uri)
        {
            ManualResetEvent waitHandle = new ManualResetEvent(false);
            WebBrowser webBrowser = new WebBrowser();
            webBrowser.Url = uri;
            webBrowser.DocumentCompleted += delegate { waitHandle.Set(); };
            waitHandle.WaitOne();
            return webBrowser;
        }
 
у меня этот код останавливает поток и браузер не загружает страницу, соответственно событие никогда не произойдет. прога повисает.
не могли бы вы подсказать как решить мою проблему.

так же я немного изменял код.
Код
public partial class Form1 : Form
{
        ManualResetEvent waitHandle = new ManualResetEvent(false);
        void f1()
        {
                browser1.Navigate(URL);
                browser1.DocumentCompleted += browser_WaitDocumentCompleted;
                waitHandle.WaitOne();
                browser1.DocumentCompleted -= browser_WaitDocumentCompleted;
         }
        void browser_WaitDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if ((sender as WebBrowser).ReadyState == WebBrowserReadyState.Complete)
                waitHandle.Set();
        }
}
в моем случае этот вариант больше подходит, но сути не меняет.
заранее благодарен.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0696 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.