• ベストアンサー

WebBrowserの進行状況

vb2005で、ProgressBarにWebBrowserの進行状況を表示するにはどうすればよいのですか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Option Compare Binary Option Explicit On Option Strict On Option Infer Off '.NET 3.0以降(VB 2008以上) 'コンソールアプリでテスト Class Q4343908A Inherits System.Windows.Forms.Form Private Webbrowser1 As System.Windows.Forms.WebBrowser Private ProgressBar1 As System.Windows.Forms.ProgressBar Private Button1 As System.Windows.Forms.Button Sub New() Webbrowser1 = New System.Windows.Forms.Webbrowser() Webbrowser1.Width = Me.Width Webbrowser1.Height = Me.Height - 100 Webbrowser1.Top = 0 Webbrowser1.Left = 0 ProgressBar1 = New System.Windows.Forms.ProgressBar() ProgressBar1.Width = Me.Width ProgressBar1.Height = 20 ProgressBar1.Top = Me.Height - 90 ProgressBar1.Left = 0 Button1 = New System.Windows.Forms.Button() Button1.Text = "読み込み" Button1.Width = Me.Width Button1.Height = 20 Button1.Top = Me.Height - 50 Button1.Left = 0 'このように,System.Windows.Forms.WebBrowser.ProgressChangedイベントで何とかする AddHandler Webbrowser1.ProgressChanged,AddressOf Webbrowser1_ProgressChanged AddHandler Button1.Click,AddressOf Button1_Click Me.Controls.Add(Webbrowser1) Me.Controls.Add(ProgressBar1) Me.Controls.Add(Button1) End Sub Sub Button1_Click(sender As Object, e As System.EventArgs) Button1.Enabled = False 'gooのシステムはURIっぽい文字列の前後にZERO WIDTH SPACEを埋め込むので 'ソースコード試す時はその文字を削除してから! Webbrowser1.Navigate(New System.Uri("http://www.google.com/")) End Sub Sub Webbrowser1_ProgressChanged(sender As Object, e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) 'ここはMaximumプロパティとMinimumプロパティとValueにそれぞれ代入した方がシンプルかもしれない ProgressBar1.Value = Integer.Parse(System.Math.Floor((e.CurrentProgress / e.MaximumProgress) * (ProgressBar1.Maximum - ProgressBar1.Minimum) + ProgressBar1.Minimum).ToString) Me.Refresh() End Sub Shared Sub Main() Dim Form1 As Q4343908A Form1 = New Q4343908A() Form1.ShowDialog() End Sub End Class

kaokumura
質問者

お礼

ありがとうございました。WebBrowser1とToolStripProgressBar1とブラウザの機能は作っていたので、 Private Sub WebBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged ToolStripProgressBar1.Value = Integer.Parse(System.Math.Floor((e.CurrentProgress / e.MaximumProgress) * (ToolStripProgressBar1.Maximum - ToolStripProgressBar1.Minimum) + ToolStripProgressBar1.Minimum).ToString) End Sub だけで、出来ました。

関連するQ&A