1

我有一个带有选项卡控件和 4 个选项卡的表单。我想在预定选项卡中打开一个带有 showdialog 的表单。

我试过了

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

但它没有用。

有什么帮助吗?谢谢

4

3 回答 3

2

首先感谢使用 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 页。

于 2010-03-25T05:07:26.257 回答
1

既然你得到了一个NullReferenceException,你应该把调用分开来看看空对象在哪里。选项卡控件是否为空?

于 2010-03-25T05:08:35.153 回答
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
于 2013-12-07T19:38:22.797 回答