Webブラウザに関していくつか質問があります


みゅう  2013-05-23 14:28:51  No: 143461  IP: [192.*.*.*]

あるサイトでこのようなコードを見つけました。


Public Class NetBrowser

    Dim WebBrowsers() As WebBrowser
    Dim TabCtrl As TabControl
    Dim TabPages() As TabPage

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Me.WindowState = FormWindowState.Maximized 'フォームの最大化
        TabCtrl = New TabControl '新しくTabControlを作成
        TabCtrl.Parent = Me '作成したTabControlをフォームに配置
        TabCtrl.Dock = DockStyle.Fill 'TabControlをフォーム全体にドッキング
        ReDim WebBrowsers(0) '新しくWebBorwserコントロールを宣言
        ReDim TabPages(0) '新しくTabPageコントロールを宣言
        WebBrowsers(0) = New WebBrowser 'WebBorwserコントロールを作成
        TabPages(0) = New TabPage 'TabPageコントロールを作成
        TabCtrl.Controls.Add(TabPages(0)) '作成したTabPageをTabControlに配置
        WebBrowsers(0).Dock = DockStyle.Fill 'WebBorwserコントロールをタブページ全体にドッキング
        AddHandler WebBrowsers(0).NewWindow, AddressOf WebBrowsers_NewWindow '作成したWebBrowserコントロールのNewWindowイベントプロシージャをWebBrowsers_NewWindowに設定
        WebBrowsers(0).Parent = TabPages(0) '作成したWebBrowserコントロールを、作成したTabPageへ配置
        WebBrowsers(0).Navigate("http://www.google.co.jp/") 'URLを表示
        TabPages(0).Text = "http://www.google.co.jp/" 'TabPageのテキストに現在のアドレスを表示
        ToolStripTextBox1.Text = ("http://www.google.co.jp/")
    End Sub

    Private Sub WebBrowsers_NewWindow(sender As Object, e As System.ComponentModel.CancelEventArgs)
        Dim c As Integer = WebBrowsers.Length '現在のTabの数
        Dim Href As String = CType(sender, WebBrowser).Document.ActiveElement.GetAttribute("href") '移動先のURL
        e.Cancel = True '新しいウインドウの生成をキャンセルする
        ReDim Preserve WebBrowsers(c) 'WebBorwsersとTabPageのインデックスを一つ増やす
        ReDim Preserve TabPages(c)
        WebBrowsers(c) = New WebBrowser '新しくWebBrowserコントロールを配置
        TabPages(c) = New TabPage '新しくTabPageコントロールを配置
        WebBrowsers(c).Dock = DockStyle.Fill '配置したWebBrowserコントロールを、TabPage全体にドッキング
        AddHandler WebBrowsers(c).NewWindow, AddressOf WebBrowsers_NewWindow '作成したWebBrowserコントロールのNewWindowイベントプロシージャをWebBrowsers_NewWindowに設定
        TabCtrl.Controls.Add(TabPages(c)) '作成したTabPageを、TabControlに配置
        WebBrowsers(c).Parent = TabPages(c) '作成したWebBrowserコントロールを、作成したTabPageに配置
        TabCtrl.SelectedIndex = c '作成したtabPageをアクティブにする
        WebBrowsers(c).Navigate(Href) '新しいタブに表示されたWebBrowserコントロールの表示アドレスを、Hrefに変更する
        TabPages(c).Text = If(Href.Length > 24, Href.Substring(0, 21) & "...", Href) 'タブページのタイトルを変更
        ToolStripTextBox1.Text = Href
    End Sub


これに、

・DocumentCompleated時にイベントを発生させる
・TextBoxにURLを入力し、Buttonを押すとページが開く

機能を追加したいです


どなたか教えてください

編集 削除
魔界の仮面弁士  2013-05-28 12:06:25  No: 143462  IP: [192.*.*.*]

「やりたいこと」は書かれていますが、
肝心の質問内容を書き忘れているようです。

質問内容が書かれていないと、ただの作成依頼/デバッグ依頼に
見えてしまうため、回答が付きにくくなってしまいます。


機能を実装するにあたり、どの部分が分からないのでしょうか?
あるいは、実際に開発を始めてみて、どのような問題が発生しているのでしょうか?


> ・DocumentCompleated時にイベントを発生させる
既存のイベントを受け取りたいなら、WithEvents または AddHandler を使います。
自作したイベントを発生させたいなら、RaiseEvent を使います。

> ・TextBoxにURLを入力し、Buttonを押すとページが開く
TextBox に URL の入力補完をさせたいなら、
AutoCompleteMode / AutoCompleteSource を使えます。
Button を押したときに処理をさせたいなら、Click イベントに
処理を記述してください。
ページを開くという部分は、WebBrowser の Navigate で良いでしょう。
新しいページで開きたいなら、必要な数だけ WebBrowser を New していけば良いかと。

編集 削除