2012-03-09 12 views
0

誰かがこれを手伝ってくれることを願っています。 2つの独立した、しかし関連するフォームがあり、そのうちの1つにWebBrowserコントロールが含まれています。ユーザーがフォーム1上のいくつかの情報を記入し、次のコードでボタンをクリック:VB.Net WebBrowserは一度だけ動作します

If Form2Shown = False Then 
    Dim memoscreen As New Form2 
    Form2Ref = memoscreen 
    memoscreen.show() 
    Form2Shown = True 
    memoscreen.TopMost = OptionOnTop 
Else 
    Dim memoscreen As Form2 
    memoscreen = Form2Ref 
    memoscreen.TopMost = OptionOnTop 
    memoscreen.QuickRefresh() 
End If 

フォーム2におけるQuickRefresh subはナビゲートする方法です。これは、両方と呼ばれるフォームは、上記のコードでは、手動だけでなく、ロードされたときにされています

Public Sub QuickRefresh() 
    Dim HM As Form1 
    HM = Form1Ref 
    Me.Text = "retrieving information..." 
    Me.AxWebBrowser1.Navigate("SomeValidURL") 

    HM.Focus() 
    HM.SetHugoFocus() 
End Sub 

私がいる問題は(Form2のがロードされたときにIE)初めてのQuickRefreshが呼び出されるということであるナビゲーションが成功していますページが正常に表示されます。 Form1のボタンを再度クリックすると、ページは変更されません。しかし、Text属性とウィンドウのフォーカスは変化しますので、メソッドが起動していることがわかります。

いくつかのものは、私がチェック/試してみた:

  • AllowNavigationが
  • はApplication.DoEvents()
の呼び出し中にブラウザがビジー状態である間ループしたことがありますWebBrowserコントロールにTrueに設定されています

何か提案がありがとうございます。ありがとう。

+0

、私はまだ私はすべてのコードを変更していない。しかし、いくつかのユーザーのマシン上で動作していない。それは作業を開始した気づいたが、私はにアップグレードしましたIE8からのIE9。WebブラウザーコントロールがIE設定の影響を受けることを検索して確認しましたが、どちらがこの動作を引き起こしているのかわかりません。どのような設定になるかについての洞察はありますか? – Straadin

答えて

0

[インターネットオプション]ダイアログボックスの[全般]タブ> [設定]ボタン> [保存されたページの新しいバージョンを確認する]のオプションを*「Webページにアクセスするたびに」に変更します。

-1

は、メソッドのリフレッシュを使用してください。これを再訪

browser.Navigate("http://www.google.com") : browser.Refresh() 
関連する問題