【发布时间】:2014-11-30 11:16:09
【问题描述】:
我正在制作一个带有 TabControl 的 Web 浏览器,我可以一切正常工作,但是当我单击“新建选项卡”按钮时,它会创建一个带有 Web 浏览器的新选项卡,但我必须手动选择该新选项卡以更改地址.我想要它,这样当我单击新标签时,它会自动将我重定向到新标签,而不是我所在的当前标签。我查看了“SelectedIndex”,但这似乎不是更改所选标签的最佳方式。
总结当我点击新标签时...
- 在选项卡控件的 END 处创建一个新选项卡,其 url 设置为 about:blank
- 不会将所选标签更改为“新创建的标签”
这是新标签按钮的代码
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) 处理 TabControl1.SelectedIndexChanged 将 WB 调暗为 CustomBrowser = Me.TabControl1.SelectedTab.Tag Me.cbURL.Text = WB.Url.ToString
End Sub
【问题讨论】:
-
SelectedIndex“似乎不是最好的方法”是什么意思? -
SelectedIndex - 您必须为每个选项卡分配一个整数。因为我不知道用户创建了多少个标签,所以它似乎不是最好的答案(另外我不完全理解它)。总之,我想要添加选项卡按钮做的就是创建一个新选项卡并选择该选项卡。
-
不,请参阅下面的答案,我将展示您如何选择最后一个选项卡。不需要指定整数,
SelectedIndex以 0 开头,以tabControl.TabPages.Count-1结尾。 -
根据蒂姆的回答,您不必知道有多少个标签。 TabControl 对象为他们的孩子持有一个 .Count。
-
是的,但我要做的就是选择选项卡控件中的最后一个选项卡,即新创建的选项卡。
标签: vb.net visual-studio-2013 browser tabcontrol tab-ordering