Как я могу установить тайм-аут для события webBrowser navigate (url)
С # netframework 4.0
9
MonsterMMORPG
7 Ноя 2010 в 21:57
2 ответа
Лучший ответ
Конечно, используя таймер. Например:
public void NavigateTo(Uri url) {
webBrowser1.Navigate(url);
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e) {
timer1.Enabled = false;
MessageBox.Show("Timeout on navigation");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
if (e.Url == webBrowser1.Url && timer1.Enabled) {
timer1.Enabled = false;
// etc..
}
}
12
Hans Passant
7 Ноя 2010 в 22:08
Разве это не подождет, пока WebBrowser фактически завершит навигацию перед отменой, а не завершит ее через определенное время?
– Sebastian Paaske Tørholm
7 Ноя 2010 в 22:13
2
Эмм, нет. Нет ничего, чтобы закончить. Просто перейдите в другое место.
– Hans Passant
7 Ноя 2010 в 22:16
1
Так что, когда таймер тикает, я перейду куда-нибудь?
– MonsterMMORPG
7 Ноя 2010 в 22:43
1
Я хочу завершить предыдущее навигационное событие. как я могу сделать это, не переходя в другое место?
– MonsterMMORPG
7 Ноя 2010 в 22:53
2
WebBrowser1.DocumentText = "Отменено"; сделаю это.
– Hans Passant
7 Ноя 2010 в 23:00
Я использую следующий подход, основанный на событиях Navigating
и Navigated
. Время между этими двумя событиями наблюдается для перенаправления на домашнюю страницу.
//Navigation Timer
timer2.Enabled = true;
timer2.Interval = 30000;
br.DocumentCompleted += browser_DocumentCompleted;
br.DocumentCompleted += writeToTextBoxEvent;
br.Navigating += OnNavigating;
br.Navigated += OnNavigated;
br.ScriptErrorsSuppressed = true;
br.Navigate(ConfigValues.websiteUrl);
private void OnNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
//Reset Timer
timer2.Stop();
timer2.Start();
WriteLogFunction("OnNavigating||||||"+e.Url.ToString());
}
private void OnNavigated(object sender, WebBrowserNavigatedEventArgs e)
{
//Stop Timer
timer2.Stop();
WriteLogFunction("NAVIGATED <><><><><><><> " + e.Url.ToString());
}
private void timer2_Tick(object sender, EventArgs e)
{
WriteLogFunction(" Navigation Timeout TICK");
br.Stop();
br.Navigate(ConfigValues.websiteUrl);
}
Ссылка
- Создайте тайм-аут для метода загрузки веб-браузера
- тайм-аут веб-браузера, если страница не загружается
0
LCJ
4 Апр 2014 в 21:30
Значит,
– br.Stop()
заставляет элемент управления веб-браузера прекращать попытки навигации?
crush
14 Дек 2017 в 06:03
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.