-1

我正在制作一个带有 TabControl 的 Web 浏览器,我可以一切正常工作,但是当我单击“新建选项卡”按钮时,它会创建一个带有 Web 浏览器的新选项卡,但我必须手动选择该新选项卡以更改地址。我想要它,这样当我单击新标签时,它会自动将我重定向到新标签,而不是我所在的当前标签。我查看了“SelectedIndex”,但这似乎不是更改所选选项卡的最佳方式。

在摘要中,当我单击新选项卡时...

  1. 在选项卡控件的 END 处创建一个新选项卡,其 url 设置为 about:blank
  2. 不会将选定的选项卡更改为“新创建的选项卡”

这是新标签按钮的代码

Private Sub btn_NewTab_Click(sender As Object, e As EventArgs) Handles btn_NewTab.Click
    AddTab("about:blank", TabControl1) 
End Sub

AddTab 子代码如下

Public Sub AddTab(ByRef URL As String, ByRef TabControl As TabControl)
    Dim NewBrowser As New CustomBrowser
    Dim NewTab As New TabPage
    NewBrowser.Tag = NewTab
    NewTab.Tag = NewBrowser
    TabControl.TabPages.Add(NewTab)
    NewTab.Controls.Add(NewBrowser)
    NewBrowser.Dock = DockStyle.Fill
    NewBrowser.Navigate(URL)

End Sub

如果您需要查看更多代码,那么他是 Web 浏览器后面所有代码的链接 Full Code

更新:我尝试添加

TabControl.SelectedIndex = TabControl.TabPages.Count - 1

到 AddTab 子,我得到一个突出显示的错误

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged Dim WB As CustomBrowser = Me.TabControl1.SelectedTab.Tag Me.cbURL.Text = WB.Url.ToString

End Sub
4

5 回答 5

1

我不知道有什么问题TabControl.SelectedIndex=TabControl.TabPages.Count-1,但您也可以使用TabControl.SelectTab

Public Sub AddTab(ByRef URL As String, ByRef TabControl As TabControl)
    Dim NewBrowser As New CustomBrowser
    Dim NewTab As New TabPage
    NewBrowser.Tag = NewTab
    NewTab.Tag = NewBrowser
    TabControl.TabPages.Add(NewTab)
    NewTab.Controls.Add(NewBrowser)
    NewBrowser.Dock = DockStyle.Fill
    NewBrowser.Navigate(URL)

    TabControl.SelectTab(NewTab)
End Sub
于 2014-10-06T08:09:39.673 回答
0

您可以使用该TabControl.SelectTab方法并将所选选项卡设置为您想要的任何选项卡。更多详细信息:http: //msdn.microsoft.com/en-us/library/system.windows.forms.tabcontrol.selectedtab (v=vs.110).aspx

于 2014-10-06T08:11:09.110 回答
0
        Dim i As Integer
        i = yourForm.TabControl.TabPages.Count
        yourForm.TabControl.SelectedIndex = i - 1
于 2015-08-24T10:01:54.843 回答
0

我用

Private Sub Add_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Add.Click Dim t As New TabPage Dim newtab As New tab_layout newtab.Show() newtab.AxWebBrowser1.RegisterAsBrowser = True newtab.Visible = True newtab.TopLevel = False newtab.Dock = DockStyle.Fill t.Controls.Add(newtab) Browser.TabControl1.TabPages.Add(t) Browser.TabControl1.SelectedTab = t End Sub

Private Sub tab_layout_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AxWebBrowser1.Navigate(My.Settings.Home) End Sub

对于你遇到的问题

也许这会对你有所帮助

于 2021-04-23T12:00:14.623 回答
0

该问题指出使用 SelectedIndex 不起作用,到目前为止,大多数答案都建议使用 SelectTab(nawtabpage) 为刚刚创建的 TabPage 按名称选择 TabPage。但是,当您需要选择已经存在的 TabPage 时,例如 Form1 中的任何位置(TabControl 位于 Form1 上),您可以使用以下命令:

   TabControl1.TabPages(0).Select()

(0)TabControl1 中的 TabPage 0 在哪里。如果 TabControl1 中有 4 个 TabPage,则它们的索引为 0、1、2、3,因此选择控件中的最后一个选项卡(如问题所问)只是主题的变体,即:

   TabControl1.TabPages(3).Select()
于 2021-08-13T04:09:09.527 回答