我有一个带有选项卡控件和 4 个选项卡的表单。我想在预定选项卡中打开一个带有 showdialog 的表单。
我试过了
OptionsForm.OPTS_TabControl1.SelectTab(1)
OptionsForm.OPTS_TabControl1.ShowDialog()
但它没有用。
有什么帮助吗?谢谢
我有一个带有选项卡控件和 4 个选项卡的表单。我想在预定选项卡中打开一个带有 showdialog 的表单。
我试过了
OptionsForm.OPTS_TabControl1.SelectTab(1)
OptionsForm.OPTS_TabControl1.ShowDialog()
但它没有用。
有什么帮助吗?谢谢
首先感谢使用 Stackoverflow。这表明你很注意课堂=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 页。
既然你得到了一个NullReferenceException
,你应该把调用分开来看看空对象在哪里。选项卡控件是否为空?
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