Как открыть форму в определенной вкладке? vb .net - PullRequest
1 голос
/ 25 марта 2010

У меня есть форма с tabcontrol и 4 вкладками. Я хочу открыть форму с помощью showdialog на заранее определенной вкладке.

Я пробовал

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

но это не сработало.

Любая помощь? спасибо

Ответы [ 3 ]

1 голос
/ 25 марта 2010

Поскольку вы получаете NullReferenceException, вы должны отделить вызов, чтобы увидеть, где находится нулевой объект. Нулевой элемент управления на вкладке?

1 голос
/ 25 марта 2010

Первые похвалы за использование 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)

Примечание: перегрузка в основном создает другой экземпляр subrotine, который принимает другие аргументы. прочитайте страницы 342-358 руководства, если хотите узнать больше.

0 голосов
/ 07 декабря 2013
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
...