タブ型ブラウザを作りたい

タグの編集
投稿者 Fox  (高校生) 投稿日時 2011/12/24 21:19:52
こんばんわ
現在自作WebBrowserを作成しています。
タブ型ブラウザの作成法を教えていただけないでしょうか。

2010を使ってます。
投稿者 xvmmtnk  (中学生) 投稿日時 2011/12/24 22:16:51
僕が以前、タブブラウザを作るために参考にした動画です。

英語ですが、コントロールの配置とコードを見れば分かります。

動画ではVB2008で作られていますが、VB2010でも作り方は同じです。

http://www.youtube.com/watch?v=Gd5xh_HF7EE

カスタマイズしていいブラウザを作って下さい!
投稿者 (削除されました)  () 投稿日時 2011/12/25 01:23:32
(削除されました)
投稿者 Fox  (高校生) 投稿日時 2011/12/25 01:25:32
新しくタブを出すと何も表示されません(泣

どこがおかしいのでしょうか?
出来れば修正していただくと嬉しいです。

Public Class Form1

    Dim int As Integer = 0

    Private Sub Loading(ByVal sender As ObjectByVal e As Windows.Forms.WebBrowserProgressChangedEventArgs)
        ToolStripProgressBar1.Maximum = e.MaximumProgress

        ToolStripProgressBar1.Value = e.CurrentProgress

    End Sub

    Private Sub Done(ByVal sender As ObjectByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs)
        TabControl1.SelectedTab.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).DocumentTitle
        Texta.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString

    End Sub
  

    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
        Dim Browser As New WebBrowser
        TabControl1.TabPages.Add("New Page")
        Browser.Name = "Web Browser"
        Browser.Dock = DockStyle.Fill
        TabControl1.SelectedTab.Controls.Add(Browser)
        AddHandler Browser.ProgressChanged, AddressOf Loading
        AddHandler Browser.DocumentCompleted, AddressOf Done
        int = int + 1
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoHome()

    End Sub

    Private Sub MenuItem5_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MenuItem5.Click
        Dim Browser As New WebBrowser
        TabControl1.TabPages.Add("New Page")
        Browser.Name = "Web Browser"
        Browser.Dock = DockStyle.Fill
        TabControl1.SelectedTab.Controls.Add(Browser)
        AddHandler Browser.ProgressChanged, AddressOf Loading
        AddHandler Browser.DocumentCompleted, AddressOf Done
        int = int + 1
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoHome()

    End Sub

    Private Sub MenuItem12_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MenuItem12.Click
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).ShowPropertiesDialog()

    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ToolStripButton1.Click
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoBack()
    End Sub

    Private Sub ToolStripButton2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ToolStripButton2.Click
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoForward()
    End Sub

    Private Sub ToolStripButton3_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ToolStripButton3.Click
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Refresh()
    End Sub

    Private Sub ToolStripButton4_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles ToolStripButton4.Click
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Stop()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Timer1.Tick
      
    End Sub

    Private Sub Texta_KeyDown(ByVal sender As System.ObjectByVal e As System.Windows.Forms.KeyEventArgs) Handles Texta.KeyDown

        If e.KeyCode = Keys.Enter Then
            Try
                Dim url As String = Texta.Text
                If Not Texta.Text.StartsWith("http://"Then url = "http://" + url
                CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(Texta.Text)
                Texta.Items.Add(url)

            Catch ex As Exception
            End Try
        End If
    End Sub
End Class

投稿者 るきお  (社会人) 投稿日時 2011/12/25 11:46:56
MenuItem5_Clickで、Webブラウザを追加する部分からおかしいです。
TabControl1.SelectedTab.Controls.Add(Browser)

これだと、新しいタブページではなく、選択されているタブページ(つまり、新しくない方)にもう1つWebブラウザを追加してしまいます。
タブページを新規追加しただけでは選択されません。
タブページを新規追加した後に選択するようにするか、選択の有無を問題にするのではなく新しいタブページを対象にするかのどちらかの対応方法があると思います。

以下は後者の例です。
Private Sub MenuItem5_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MenuItem5.Click
    Dim Browser As New WebBrowser
    Dim newTabPage As New TabPage("New Page")
    TabControl1.TabPages.Add(newTabPage)

    Browser.Name = "Web Browser"
    Browser.Dock = DockStyle.Fill
    newTabPage.Controls.Add(Browser)
    AddHandler Browser.ProgressChanged, AddressOf Loading
    AddHandler Browser.DocumentCompleted, AddressOf Done
    int = int + 1
    Browser.GoHome()

    '新しく追加したタブが選択された状態にする。 
    TabControl1.SelectedTab = newTabPage

End Sub


以下、掲示板の管理者として、

>出来れば修正していただくと嬉しいです。
Foxさんは、今後、回答側・質問側双方の立場でこの掲示板に積極的に参加してください。

今回はFoxさんは質問側の立場ですが具体的なソースコードを投稿してくれているのが良いです。
このようにどちらの立場でも掲示板を見る人が何かの情報を得られるという書き込みはありがたいです。
投稿者 Fox  (高校生) 投稿日時 2011/12/25 22:14:37
xvmmtnkさん、るきおさんありがとうございました。
お陰様で動作するようになりました。

まだまだ勉強して頑張っていこうと思います。

また何かありましたら質問させていただこうと思います。
投稿者 VAIVAIO  (小学生) 投稿日時 2012/7/13 22:04:47
textaっていうコントロールの意味は何なのでしょうか
で開発をしています
投稿者 daive  (社会人) 投稿日時 2012/7/14 11:30:40
>textaっていうコントロールの意味は何なのでしょうか
あっちこっち、判らず、苦労されての投稿だと思いますが、
今回の様な場合は、
新しく投稿した方が、回答が付きやすいと思います。
例えば、

タイトル「タブ型ブラウザを作りたい」で紹介されているコード
投稿内容
「タブ型ブラウザを作りたい」で紹介されているコード
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10639
で、紹介されているコード
textaっていうコントロールの意味は何なのでしょうか
とした方が、良い様な感じがしますが?

で、具体的には、
TextBox / ListBox / ComboBox など、   .Text プロパティが
使用可能な、コントロール、オブジェクトの何れかと、考える事が出来ます。

せっかく、Visual Basic 中学校 にいらしているのですから、
他の方の投稿も、参考にしてみてはいかがでしょうか?

Wide Explorer
http://rucio.o.oo7.jp/VBContribution/VBContributionTop.htm#wideexplorer
まずは、この様な公開されているモノを、見て、まねるのも、有かと、
学ぶは、真似ぶ、基礎が理解出来たらば、自分なりの事が出来る様になります。
投稿者 るきお  (社会人) 投稿日時 2012/7/14 14:21:00
TextaはfoxさんがつけたTextBoxの名前です。自動的につくTextBox1という名前が気に入らない場合、自分で名前をつけることができます。入門講座でも説明していますのでぜひご覧になってください。