WebBrowserでWebページが表示されない問題が発生する理由とは?

このQ&Aのポイント
  • VB2005でWebBrowserを使用し、ボタンをクリックすると途中でStopさせるとWebページが表示されない問題が発生
  • Stopを使用することによってWebページの表示を停止することができるが、表示がされない場合がある
  • この問題の原因は、Stopの処理がWebページの読み込みを中断してしまい、全ての要素が表示される前に処理が終わってしまうため
回答を見る
  • ベストアンサー

WebBrowserについて

VB2005で、WebBrowserを使おうとしたところ次のような問題が発生しました。 フォームに、WebBrowserを貼り付けてボタンをクリックしたところsubの途中でStopさせるとWebBrowserに表示されません。どうしてでしょうか?教えてください。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click WebBrowser1.Navigate("http://www.goo.ne.jp/") End Sub の状態だと表示されますが、 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click WebBrowser1.Navigate("http://www.goo.ne.jp/")     Stop End Sub で止めると表示されません。 教えていただけないでしょうか?宜しくお願い致します。

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

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

WebBrowser1.Navigate("http://www.goo.ne.jp/") で実際にアクセスする前にStopが掛かっているからでは? 簡単な流れとしては WebBrowser1.Navigate ↓ WebBrowser1_Navigating ↓ WebBrowser1_Navigated ↓ WebBrowser1_DocumentCompleted のような感じだったと思います。 何故Stopさせていのでしょうか?単純にページ表示後のStopでよければ Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted Stop End Sub でもいいのでは?

関連するQ&A

  • VBのこのコードの意味を教えてください。(至急)

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click このコードの意味を教えてください。 よろしくお願いします。

  • プロクシーを経由してwebbrowserに表示させるには?

    ■VBのバージョン : VB.NET2003 お世話になります。 プロクシーの使い方がよくわかりません。 helpでproxyといれて検索してみたのですが webBrowserを使ったサンプルがなく困っています。 このヤフーのページを表示させるまえにプロクシーを経由して 表示させるにはどのようにすればよいでしょうか? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate2("http://www.yahoo.co.jp") End Sub

  • Elseifのコードが分かりません。(至急)

    急ぎのため再度の質問失礼します。 3つの数字すべてが7のとき、メッセージ1を出し、 どれか2つだけが7のときは、メッセージ2を出し、 どれか1つだけが7のときは、メッセージ3を出し、 どこにも7が含まれていないときは、メッセージ4を出すようにEndifを使って書きたいのですが、正しいコードを教えて下さい。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Randomize() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click PictureBox1.Visible = False Label4.Visible = False Label1.Text = CStr(Int(Rnd() * 10)) Label2.Text = CStr(Int(Rnd() * 10)) Label3.Text = CStr(Int(Rnd() * 10)) If End If End Sub Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click End Sub Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click End Sub Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click End Sub End Class よろしくお願いします。

  • Call文 でデバックできません。

    VB初心者です。 Win2003Sarver+SQL2000+VB.Net2008の組合せで作っています。 Call文で下記の様にすると Private Sub Button自動1600_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button自動1600.Click Call Button1600_Click() <--ここでデバックできません。 End Sub Private Sub Button1600_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1600.Click Me.洗浄機記録BindingSource.AddNew() Me.日付TextBox.Text = Now End Sub Call Button1600_Click() デバックできません。 下記の様にすると動きます。 Private Sub Button自動1600_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button自動1600.Click Call B1600() End Sub Private Sub B1600 Me.洗浄機記録BindingSource.AddNew() Me.日付TextBox.Text = Now End Sub Call先に Click(ByVal sender As System.Object, ByVal e As System.EventArgs) が あると引数か何かが必要になるのでしょうか。 ご存知の方教えてください。

  • 無限ループからの脱出用の文について

    **************************************************************** Button2がクリックされたらButton1の中のwhileの無限ループから抜け出すようにしたいのですが、どのようにすればよいのでしょうか。プログラミング初心者な為、初歩的な質問で申し訳ありません。 **************************************************************** Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click   質問1:Button2がクリックされた時のプログラム End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click While True   If 質問2:(Button2がクリックされたとき)Then Exit While End While End Sub

  • VB初心者です。コードの書き方が分かりません。

    VB初心者です。 VBで(zのn乗)-(xのn乗+yのn乗)の計算が出来るようにしたいのですが、答えが必ず-1になってしまいます。 Option Explicit On Public Class Form1 Dim x As Long Dim y As Long Dim z As Long Dim n As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox5.Text = (z ^ n) - (x ^ n + y ^ n) End Sub End Class 正しいコードの書き方を教えて下さい。 また特定の答えのときにメッセージを表示したいのですが、どうすればいいですか?

  • 最後まで読み込ませて待たせるには?

    わからないので質問させてください。 初心者なのでなかなかうまくいきません。(?_?) 教えていただけないでしょうか。 よろしくお願いいたします。 OS VISTA ブラウザ IE7 Microsoft Visual Basic 2005 WindowsFormのWebBrowserを使って表示させています。 やりたいこと WebBrowser1.Navigate(ComboBox1.Text)が読み込むまで待たせたい。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click WebBrowser1.Navigate(ComboBox1.Text) WebBrowser1.Document.All.GetElementsByName("タイトル")(0).InnerText = TextBox2.Text WebBrowser1.Document.All.GetElementsByName("内容")(0).InnerText = RichTextBox1.Text End Sub

  • ボタンをクリックしても空白をリストに追加しないようにしたい

    初心者ですのでよろしくお願いいたします。 以下のようなコードでボタンを押すとテキストボックスに入力してあるテキストをリストに登録したいのですが、空白の場合は追加したくありません。どのように書けばいいでしょうか? よろしくお願いいたします。 (ちなみにLabel3にはリストに登録された数が出ます) Public Class Form1 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click End End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Add(TextBox1.Text) TextBox1.Clear() Label3.Text = ListBox1.Items.Count End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Remove(ListBox1.SelectedItem) Label3.Text = ListBox1.Items.Count End Sub End Class

  • WebBrowserでHtmlを取得

    WebBrowserでHtmlを取得する方法をおしえてください フォーム上に、WebBrowser1、TextBox1、Button1を配置しています。 TextBox1にHtmlを表示し、Button1は、WebBrowser1に表示している WEBページを更新します。 やりたい事  (1)フォームを開いた時に、URLで指定したWEBページを表示させ   TextBox1にHtmlを表示させる。  (2)Button1をクリックした時、表示しているWEBページを更新する。   更新後のHtmlをTextBox1に表示させる。  (3)TextBox1の表示が完了したらHtmlを処理する。(未着手) 現在、(1)は動作するのですが、(2)が動作しません(TextBox1のHtmlが更新されない) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load WebBrowser1.Navigate(オッズURL):webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "" If Not WebBrowser1.Url.Equals("about:blank") Then WebBrowser1.Refresh() : webcompflag = False Do While (webcompflag = False) System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(10) Loop TextBox1.Text = WebBrowser1.Document.Body.InnerHtml End Sub 何がいけないのか分かりません よろしくお願いします。

  • このコードはどこが間違っていますか?(至急)

    急ぎのため再度の質問失礼します。 (zのn乗)-(xのn乗+yのn乗)の計算をさせて、答えが0のときにメッセージを表示したいのですが、どのようなコードを書けばいいのでしょうか? Option Explicit On Public Class Form1 Dim x As Long Dim y As Long Dim z As Long Dim n As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged End Sub Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged End Sub Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click x = TextBox1.Text y = TextBox2.Text z = TextBox3.Text n = TextBox4.Text TextBox5.Text = (z ^ n) - (x ^ n + y ^ n) If (TextBox5 .Text= 0) Then Label6.Visible = True End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Label6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label6.Click End Sub End Class このコードだと答えが必ず-1になってしまうのですが、どこを直せばいいのでしょうか? 正しいコードを教えて下さい。 よろしくお願いします。

専門家に質問してみよう