VB.Net的多窗格浏览器窗口

时间:2014-02-21 09:22:42

标签: vb.net browser visual-studio-2013

我正在尝试在VB.NET中实现一个项目,其中用户可以并排看到两个浏览器窗口窗格。它非常类似于在屏幕上并排放置两个浏览器窗口,一个停靠在左侧,另一个停靠在右侧。只有在这种情况下,才有一个应用程序。我的代码存在以下问题

  1. 按Enter键时,浏览器无法导航到两个窗格的网站
  2. 左窗格中的控件无效。只有Go按钮适用于左窗格。
  3. 这是我的代码(无法发布图片):

    Public Class Form1

        Dim int As Integer = 0
        Dim int1 As Integer = 0
        Private Sub Loading(ByVal sender As Object, ByVal e As Windows.Forms.WebBrowserProgressChangedEventArgs)
            ToolStripProgressBar1.Maximum = e.MaximumProgress
            ToolStripProgressBar1.Value = e.MaximumProgress
        End Sub
        Private Sub Loading1(ByVal sender1 As Object, ByVal e1 As Windows.Forms.WebBrowserProgressChangedEventArgs)
            ToolStripProgressBar2.Maximum = e1.MaximumProgress
            ToolStripProgressBar2.Value = e1.MaximumProgress
        End Sub
        Private Sub Done(ByVal sender As Object, ByVal e As Windows.Forms.WebBrowserDocumentCompletedEventArgs)
            TabControl1.SelectedTab.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).DocumentTitle
            TextBox1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString
        End Sub
        Private Sub Done1(ByVal sender1 As Object, ByVal e1 As Windows.Forms.WebBrowserDocumentCompletedEventArgs)
            TabControl2.SelectedTab.Text = CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).DocumentTitle
            TextBox2.Text = CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Url.ToString
        End Sub
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal 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).Navigate(My.Settings.homePage)
            Dim Browser1 As New WebBrowser
            TabControl2.TabPages.Add("New Page")
            Browser1.Name = "Web Browser 2"
            Browser1.Dock = DockStyle.Fill
            TabControl2.SelectedTab.Controls.Add(Browser1)
            AddHandler Browser1.ProgressChanged, AddressOf Loading1
            AddHandler Browser1.DocumentCompleted, AddressOf Done1
            int1 = int1 + 1
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Navigate(My.Settings.homePage)
        End Sub
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Dim Browser As New WebBrowser
            TabControl1.TabPages.Add("New Page")
            TabControl1.SelectTab(int)
            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).Navigate(My.Settings.homePage)
        End Sub
        Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            If Not TabControl1.TabPages.Count = 1 Then
                TabControl1.TabPages.RemoveAt(TabControl1.SelectedIndex)
                TabControl1.SelectTab(TabControl1.TabPages.Count - 1)
                int = int - 1
            End If
        End Sub
        Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs)
            If e.KeyCode = Keys.Enter Then
                CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox1.Text)
            End If
        End Sub
        Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).ShowPropertiesDialog()
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoBack()
        End Sub
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).GoForward()
        End Sub
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Refresh()
        End Sub
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Stop()
        End Sub
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(My.Settings.homePage)
        End Sub
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox1.Text)
        End Sub
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            ToolStripStatusLabel1.Text = CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).StatusText
        End Sub
        Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
            Dim Browser1 As New WebBrowser
            TabControl2.TabPages.Add("New Page")
            TabControl2.SelectTab(int1)
            Browser1.Name = "Web Browser 2"
            Browser1.Dock = DockStyle.Fill
            TabControl2.SelectedTab.Controls.Add(Browser1)
            AddHandler Browser1.ProgressChanged, AddressOf Loading1
            AddHandler Browser1.DocumentCompleted, AddressOf Done1
            int1 = int1 + 1
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Navigate(My.Settings.homePage)
        End Sub
        Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
            If Not TabControl2.TabPages.Count = 1 Then
                TabControl2.TabPages.RemoveAt(TabControl2.SelectedIndex)
                TabControl2.SelectTab(TabControl2.TabPages.Count - 1)
                int1 = int1 - 1
            End If
        End Sub
        Private Sub TextBox2_KeyDown(sender As Object, e As KeyEventArgs)
            If e.KeyCode = Keys.Enter Then
                CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox2.Text)
            End If
        End Sub
        Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).ShowPropertiesDialog()
        End Sub
        Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).GoBack()
        End Sub
        Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).GoForward()
        End Sub
        Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Refresh()
        End Sub
        Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Stop()
        End Sub
        Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Navigate(My.Settings.homePage)
        End Sub
        Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
            CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox2.Text)
        End Sub
        Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
            ToolStripStatusLabel2.Text = CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).StatusText
        End Sub
    End Class
    

    我是新来的,所以如果我错过了什么,我很抱歉。任何帮助,将不胜感激。谢谢。

    编辑:我尝试在单个窗格中实现相同的功能,就像在Visual Studio 2013中实现一个简单的选项卡式浏览器一样。结果相同。只有GO按钮有效,输入键不会产生任何效果。

1 个答案:

答案 0 :(得分:-1)

    If e.KeyCode = Keys.Enter Then
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox1.Text)
    End If

您只在TabControl1(或2)中调用导航。您需要从每个TextBoxX_KeyDown处理程序中调用所有。

    If e.KeyCode = Keys.Enter Then
        CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox1.Text)
        CType(TabControl2.SelectedTab.Controls.Item(0), WebBrowser).Navigate(TextBox2.Text)
    End If