如何在确定的选项卡中打开表单? vb .net

时间:2010-03-25 04:39:26

标签: vb.net forms tabcontrol tabcontainer

我有一个带有tabcontrol和4个标签的表单。我想在预定的标签页面中打开带有showdialog的表单。

我试过

    OptionsForm.OPTS_TabControl1.SelectTab(1)
    OptionsForm.OPTS_TabControl1.ShowDialog()

但它不起作用。

有任何帮助吗?感谢

3 个答案:

答案 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