1

VB.NET を使用して、ページ タイトルをテキスト ファイルに書き込もうとしています。私はここで困惑しています:

Private Sub
    Dim pagetitle As String
    pagetitle = WebBrowser1.Document.Title
    My.Computer.FileSystem.WriteAllText("page title.txt", pagetitle, False)

しかし、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。助けてください!

4

2 に答える 2

1

Documentプロパティがまだ に等しいときに、プロパティにアクセスしようとしている可能性がありますNothing。次のように、コードをコントロールのDocumentCompletedイベントに移動します。WebBrowser

Private Sub WebBrowser1_DocumentCompleted(sender As System.Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        If WebBrowser1.Document IsNot Nothing Then
            Dim pagetitle As String
            pagetitle = WebBrowser1.Document.Title
            My.Computer.FileSystem.WriteAllText("page title.txt", pagetitle, False)
        End If
End Sub
于 2013-03-29T16:52:57.333 に答える
0

私の推測では、'WebBrowser1.Document't は null ではありません。Document を null にしないためにどのような条件が必要かはわかりませんが、タイトルを取得する前にまずそれを確認する必要があります。

これを次から盗みました: http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.document.aspx

Private Sub webBrowser1_Navigating( _
    ByVal sender As Object, ByVal e As WebBrowserNavigatingEventArgs) _
    Handles webBrowser1.Navigating

    Dim document As System.Windows.Forms.HtmlDocument = _
    webBrowser1.Document
    If document IsNot Nothing And _
        document.All("userName") IsNot Nothing And _
        String.IsNullOrEmpty( _
        document.All("userName").GetAttribute("value")) Then

        e.Cancel = True
        MsgBox("You must enter your name before you can navigate to " & _
            e.Url.ToString())
    End If 

End Sub
于 2013-03-29T16:53:29.027 に答える