前提・実現したいこと
vb.netでタブ型のブラウザを作成しています。
具体的に実現したいことは以下のとおりです。
1.指定したURLに該当するページを、formの中で表示する
2.ページ内でリンクをクリックしたとき、新規タブで表示する
※現時点では、1つのタブを追加するところを目標としています。
最終的には、動的に複数のタブを追加するところを目標としています。
発生している問題・エラーメッセージ
現状、1.はクリアしていますが、2.で躓いています。
具体的には、リンクをクリックしたとき、新規タブで表示することはできていますが、
遷移元のページ(タブ)の内容が消えてしまいます。
遷移元のページも表示させるには、どうすればよいでしょうか。
該当のソースコード
vb.net
1Public Class Form1 2 Private WithEvents webBrowser1 As New WebBrowser() 3 Dim TabCtrl As TabControl 4 Dim TabPages() As TabPage 5 6'1.指定したURLに該当するページを表示 7Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click 8 9 webBrowser1 = New WebBrowser '新しくWebBrowserを作成 10 11 TabCtrl = New TabControl '新しくTabControlを作成 12 TabCtrl.Parent = Me '作成したTabControlをフォームに配置 13 TabCtrl.Dock = DockStyle.Fill 'TabControlをフォーム全体にドッキング 14 15 ReDim TabPages(0) '新しくTabPageコントロールを宣言 16 TabPages(0) = New TabPage 17 18 TabCtrl.Controls.Add(TabPages(0)) '作成したTabPageをTabControlに配置 19 20 webBrowser1.Parent = TabPages(0) '作成したWebBrowserコントロールを、作成したTabPageへ配置 21 22 webBrowser1.Dock = DockStyle.Fill 23 webBrowser1.Name = "webBrowser1" 24 Me.WindowState = FormWindowState.Maximized 'フォームの最大化 25 26 webBrowser1.navigate("[指定するURL]") '該当ページを表示 27End Sub 28 29'2.リンクが押されたとき、新規タブで開く 30Sub webBrowser1_NewWindow(sender As Object, e As CancelEventArgs) Handles webBrowser1.NewWindow 31 32 Dim webBrowser2 As New WebBrowser() 33 webBrowser2 = CType(sender, WebBrowser) 34 Dim txt As String = webBrowser2.StatusText 35 36 ReDim Preserve TabPages(1) '新しくTabPageコントロールを宣言 37 TabPages(1) = New TabPage 38 39 TabCtrl.Controls.Add(TabPages(1)) '作成したTabPageをTabControlに配置 40 TabCtrl.SelectedIndex = 1 41 42 webBrowser2.Dock = DockStyle.Fill 'WebBorwserコントロールをタブページ全体にドッキング 43 webBrowser2.Parent = TabPages(1) '作成したWebBrowserコントロールを、作成したTabPageへ配置 44 45 If Not txt = Nothing Then 46 webBrowser2.Navigate(txt) 47 End If 48 e.Cancel = True 49End Sub 50End Class
試したこと
TabPage、WebBrowserを配列にする/個別の変数にする
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/24 00:38