我有一个带有tabcontrol和4个标签的表单。我想在预定的标签页面中打开带有showdialog的表单。
我试过
OptionsForm.OPTS_TabControl1.SelectTab(1)
OptionsForm.OPTS_TabControl1.ShowDialog()
但它不起作用。
有任何帮助吗?感谢
答案 0 :(得分:1)
使用Stackoverflow的第一个荣誉。它表明你注意了class = D
关于您的问题,您展示的那段代码应该正常运行。您应该提供实际错误,以便我们可以尝试找出答案。
OptionsForm是否引用您创建的类的类或对象?
无论如何,尝试创建表单的对象,然后设置起始选项卡,如下所示:
Dim OptionsObject As New OptionsForm
OptionsObject.OPTS_TabControl1.SelectTab(1)
OptionsObject.OPTS_TabControl1.ShowDialog()
另一个解决方案可能是重载Showdialog方法,虽然它看起来有点过分。
以下是: 在您的OptionsForm代码中:
Public Overloads Sub Showdialog(ByRef TabNumber As Integer)
OPTS_TabControl1.SelectTab(TabNumber)
Return MyBase.ShowDialog()
然后使用
调用表单optionsform.showdialog(1)
注意:重载基本上是创建另一个接受不同参数的子例程实例。如果您想了解更多信息,请阅读本手册的第342-358页。
答案 1 :(得分:1)
由于您获得了NullReferenceException
,因此您应该将调用分开以查看null对象的位置。选项卡控件是否为空?
答案 2 :(得分:0)
Imports System.Drawing
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Private tabControl1 As TabControl
Private tabPage1 As TabPage
Private tabPage2 As TabPage
Private Sub MyTabs()
Me.tabControl1 = New TabControl()
Me.tabPage1 = New TabPage()
Me.tabPage2 = New TabPage()
Me.tabControl1.Controls.AddRange(New Control() {Me.tabPage1, Me.tabPage2})
Me.tabControl1.Padding = New Point(15, 10)
Me.tabControl1.Location = New Point(35, 25)
Me.tabControl1.Size = New Size(220, 220)
' Selects tabPage2 using SelectedTab.
Me.tabControl1.SelectedTab = tabPage2
Me.tabPage1.Text = "tabPage1"
Me.tabPage2.Text = "tabPage2"
Me.Size = New Size(300, 300)
Me.Controls.AddRange(New Control() {Me.tabControl1})
End Sub
Public Sub New()
MyTabs()
End Sub
Shared Sub Main()
Application.Run(New Form1())
End Sub
End Class