0

簡単なWebブラウザリローダープログラムを作成しています。私のプログラムでは、これらのコントロールを使用しています

axMozillaBrowser,
Button,
progressBar,
TextBox

Webページを「5」回ロードしようとしています。以下は、webBrowserコントロール(Internet Explorerのインスタンス)を使用するときに機能するコードです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        while (progressBar1.Value !=5 )
        {
            webBrowser1.Navigate(textBox1.Text);
            while(webBrowser1.ReadyState != webBrowserRedyState.Complete)
            {
            if (webBrowser1.ReadyState == webBrowserRedyState.Complete)
            {
                    progressBar1.Value =+ 1;
            }
            }
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        progressBar1.Maximum = 5;
        textBox1.Text = "www.google.com";
    }
}
}

これは、axMozillaBrowserコントロール(Mozillaブラウザのインス​​タンス)を使用すると機能しないコードです。これはWebページをロードせず、待機中のカーソルが点滅しているだけです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        while (progressBar1.Value !=5 )
        {
            axMozillaBrowser1.Navigate(textBox1.Text);
            while(axMozillaBrowser1.ReadyState != MOZILLACONTROLLib.tagREADYSTATE.READYSTATE_COMPLETE)
            {
            if (axMozillaBrowser1.ReadyState == MOZILLACONTROLLib.tagREADYSTATE.READYSTATE_COMPLETE)
            {
                    progressBar1.Value =+ 1;
            }
            }
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        progressBar1.Maximum = 5;
        textBox1.Text = "www.google.com";
    }
}
}
4

1 に答える 1

0

ブラウザコントロールにNavigateed(またはそのようなもの)イベントがありますか?たとえば、これを単純なロジックサイクルで使用できます。このサイクルでは、コントロールがコレクション内の最初のURLに移動し、ナビゲーションが完了したら、2番目のURLに移動して次のURLに移動します。

upd:申し訳ありませんが、もう一度読みましたが、今は理解できません。upd2:ただし、NavigateedおよびNavigatingイベントとNavigationStateプロパティを見つけることをお勧めします。

于 2012-09-26T12:19:06.930 に答える