سؤال

كيف يمكنني تعيين مهلة لحدث WebBrowser Tavigate (URL)

C# netframework 4.0

هل كانت مفيدة؟

المحلول

باستخدام مؤقت بالطبع. فمثلا:

    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..
        }
    }

نصائح أخرى

أنا أستخدم النهج التالي بناءً على Navigating و Navigated الأحداث. ويلاحظ الوقت بين هذين الحدثين لإعادة توجيه إلى PGAE المنزلي.

        //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);
    }

المرجعي

  1. قم بإنشاء مهلة لطريقة تحميل WebBrowser
  2. مهلة WebBrowser إذا لن يتم تحميل الصفحة
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top