VB.NETで簡単なWebブラウザを作る
(その2)

指定されたURLのページを表示する

[移動]ボタンを押したときに、URLテキストボックスで指定されたURLのページを表示します。

サンプルコードを以下に示します。


'****************************************************************************'
'*
'*  @brief  指定されたURLのページを表示する.
'*
'*  @param  [in]    sender  イベントの送信元のオブジェクト.
'*  @param  [in]    e       イベント情報.
'*
'*  @retval なし.
'*
Private Sub MoveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MoveButton.Click

    '指定されたURLが空白の場合、処理しない.
    If String.IsNullOrEmpty( UrlList.Text ) Then
        Return
    End If

    '指定されたURLのWebページを読み込む.
    Try
        WebBrowser1.Navigate( New Uri(UrlList.Text) )
    Catch ex As System.UriFormatException
        Return
    End Try

End Sub
	

指定されたURLのページを表示する

指定されたURLのページをWebBrowserクラスのNavigate()メソッドを使用して表示します。


    Public Sub Navigate( url As Uri )
	

引数説明
Uri

表示するページのURL。

WebBrowserクラスのプロパティUrlに表示するページのURLをセットしてもNavigate()メソッドと同様の動作を行います。


    Public Property Url As Uri
	

WebBrowserコントロールに表示するページが変更される場合、変更の開始と終了でそれぞれイベントが通知されます。

サンプルコードでは、ページ変更の終了イベントで、ナビゲーション履歴を調べて[戻る]/[進む]ボタンの有効/無効を設定しています。

また、表示するWebページのタイトルを取得して、ウインドウのキャプションを変更しています。

サンプルコードを以下に示します。


'****************************************************************************'
'*
'*  @brief  Webページの読込みを開始したときのイベント処理.
'*
'*  @param  [in]    sender  イベントの送信元のオブジェクト.
'*  @param  [in]    e       イベント情報.
'*
'*  @retval なし.
'*
Private Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating

    'ナビゲーションボタンを無効にする.
    SetNaviButton( False )

End Sub
	


'****************************************************************************'
'*
'*  @brief  Webページの表示が終了したときのイベント処理.
'*
'*  @param  [in]    sender  イベントの送信元のオブジェクト.
'*  @param  [in]    e       イベント情報.
'*
'*  @retval なし.
'*
Private Sub WebBrowser1_Navigated(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated

    'ナビゲーションボタンを有効にする.
    SetNaviButton( True )

    '表示したWebページのURLを表示する.
    UrlList.Text = WebBrowser1.Url.ToString()

    'URLリストに表示したWebページのURLを追加する.
    '(但し、既にURLリストに追加されているURLの場合は登録しない)
    Dim i As Integer
    For i = 0 To UrlList.Items.Count - 1
        If UrlList.Items.Item(i).ToString() = WebBrowser1.Url.ToString() Then
            Exit For
        End If
    Next i

    If i >= UrlList.Items.Count Then
        UrlList.Items.Add(WebBrowser1.Url.ToString())
    End If

    'Webページのタイトルをウインドウのキャプションに表示する.
    If String.IsNullOrEmpty(WebBrowser1.DocumentTitle()) Then
        Me.Text = WebBrowser1.Url.AbsoluteUri()
    Else
        Me.Text = WebBrowser1.DocumentTitle()
    End If

End Sub
	


'****************************************************************************'
'*
'*  @brief  ナビゲーション・ボタンの有効/無効を設定する.
'*
'*  @param  [in]    ena     True = ナビボタンを有効 / False = ナビボタンを無効.
'*
'*  @retval なし.
'*
Private Sub SetNaviButton( ByVal ena As Boolean )

    If ena = True Then
        'ナビゲーション履歴に前のページがある場合に、[戻る]ボタンを有効にする.
        If WebBrowser1.CanGoBack = True Then
            BackButton.Enabled = True
        Else
            BackButton.Enabled = False
        End If

        'ナビゲーション履歴に次のページがある場合に、[進む]ボタンを有効にする.
        If WebBrowser1.CanGoForward = True Then
            FwdButton.Enabled = True
        Else
            FwdButton.Enabled = False
        End If

        '[更新]/[Home]/[移動]ボタンを許可する.
        RefreshButton.Enabled = True
        HomeButton.Enabled    = True
        MoveButton.Enabled    = True

        '[中止]ボタンを禁止にする.
        StopButton.Enabled = False
    Else
        '[中止]ボタン以外を禁止にする.
        BackButton.Enabled    = False
        FwdButton.Enabled     = False
        RefreshButton.Enabled = False
        HomeButton.Enabled    = False
        MoveButton.Enabled    = False
        StopButton.Enabled    = True
    End If

End Sub
	

ページの変更が開始されるときのイベント

指定されたURLのページをWebBrowserクラスのNavigate()メソッドを使用して表示します。


    Public Event Navigated As WebBrowserNavigatedEventHandler
	

ページの変更が終了するときのイベント

ページの読込みが終了するとWebBrowserクラスのNavigating()イベントが通知されます。


    Public Event Navigating As WebBrowserNavigatingEventHandler
	

Webページのタイトルを取得する

WebBrowserコントロールに表示されているWebページのタイトルを取得します。


    Public ReadOnly Property DocumentTitle As String
	

ナビゲーション履歴に前のページがあるかどうかを調べる

WebBrowserコントロールのナビゲーション履歴に前のページがあるかどうかを調べます。


    Public ReadOnly Property CanGoBack As Boolean
	

ナビゲーション履歴に次のページがあるかどうかを調べる

WebBrowserコントロールのナビゲーション履歴に次のページがあるかどうかを調べます。


    Public ReadOnly Property CanGoForward As Boolean
	



商標に関する表示