0

そのため、stackoverflow に関する他のいくつかの投稿を見てきましたが、これを達成するために機能しているようには見えません。私がやりたいことは、webbrowser1.documenttext プロパティでプログラムによって何かを変更した後、WebBrowser コントロールが自動的に一番下までスクロールすることだけです。

私は次のすべての方法を試しましたが、どれも機能しません...実際には、文字通りすべて同じコード行に記述されています。

     WebBrowser1.ScrollBarsEnabled = True
    WebBrowser1.Document.Body.ScrollIntoView(False)

    WebBrowser1.Document.Window.ScrollTo(New Point(WebBrowser1.Height, WebBrowser1.Height))



    WebBrowser1.Document.Window.ScrollTo(WebBrowser1.Height, WebBrowser1.Height)
    WebBrowser1.AutoScrollOffset = New Point(WebBrowser1.Height, WebBrowser1.Height)

私のWebBrowser1コントロールでは、私が行ったことはすべて、それを開始するように設定され、最後に配置され、途中で私が行ったことはすべてコピーされ、次のように貼り付けられます...

    <html><body>
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   <div style="color: red;">blah blah</div><Br />
   </body></html>

約30回...しかし、何も機能しません。上記のコードはどれも何もしていません。

私は何が欠けていますか?

VS 2005 SP1 - VB.NET

4

2 に答える 2

1

問題は、DOM が更新される前に DOM にアクセスしようとしている可能性があります。次のように、DocumentCompleted イベントで正しい要素が表示されるようにコードを起動します。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    WebBrowser1.DocumentText = <html><body>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;'>blah blah</div><Br/>
                                   <div style='color: red;' id="lastElement">blah blah</div><Br/>
                                   </body></html>.ToString()
End Sub

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Dim lastGuy= WebBrowser1.Document.GetElementById("lastElement")
    If lastGuy<> Nothing Then
        lastGuy.ScrollIntoView(True)
    End If
End Sub
于 2013-01-13T19:36:40.687 に答える