2016-03-03 2 views
-1

В этом примере я использую 1 кнопки и веб-браузера в VB с помощью C#Как пауза между действиями в C#

Я просто хочу, чтобы нажать на кнопку один раз, то есть это пойти в Бинг, подождите 2 секунды, затем перейдите в Google. Каждый метод, который я видел, когда я пытаюсь, всегда имеет паузу или паузу в начале, а не между навигацией. Вот что у меня есть. Заранее спасибо.

public void button1_Click(object sender, EventArgs e) 
    { 

     WebBrowser1.Navigate("http://www.bing.com"); 


     Thread.sleep(2000); 


     WebBrowser1.Navigate("http://www.google.com"); 

    } 
+1

Что конечная цель, которую вы пытаетесь достичь и почему 2 секунды конкретно? Вы можете заглянуть в подписку на обработчик 'DocumentCompleted', как только страница Bing закончит загрузку, а затем перейдите на страницу google? – DGibbs

+1

Проблема заключается в том, что 'Navigate' является асинхронным, поэтому задержка уже завершена, пока страница по-прежнему загружается. Назначьте обработчик события «DocumentCompleted», задержите его, а затем перейдите в Google. –

+0

Спасибо! Я не сталкивался с документами. Было всего 2 секунды, чтобы он полностью загрузился. Если бы у вас был очень быстрый пример использования этого в этой ситуации, это было бы очень полезно! – OmegaPoint

ответ

2

Подписаться на DocumentCompleted события и перейти на второй странице:

private void LoadPages() 
{ 
    WebBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser1_DocumentCompleted); 
    WebBrowser1.Navigate("http://www.bing.com"); 
} 

void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    WebBrowser1.Navigate("http://www.google.com"); 

    // Might want to dispose of the webbrowser instance or else 
    // this event will fire again for the above call to `Navigate()` 
    // and you'll end up in a loop. 

    ((WebBrowser)sender).Dispose(); 

    // Or you could unsubscribe to the event if you still need the browser instance 
    WebBrowser1.DocumentCompleted -= WebBrowser1_DocumentCompleted; 
} 
+0

Возможно, вам захочется проверить, какой документ был загружен в DocumentCompletedEvent, в противном случае он будет постоянно загружать страницу google. –

+1

Ударьте меня на нее - возможно, лучше отказаться от подписки на событие, а не удалять самого веб-браузера –

+0

Это хороший момент, добавив, что в – DGibbs

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