Как открыть форму в определенной вкладке? vb.net

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

я пробовал

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

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

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


person Ellome    schedule 25.03.2010    source источник
comment
Что именно вы имеете в виду под не сработало? Форма не появилась? Форма отображается, но вкладка не выбрана?   -  person Zach Johnson    schedule 25.03.2010
comment
Он выдал NullReferenceException   -  person Ellome    schedule 25.03.2010


Ответы (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 руководства, если хотите узнать больше.

person Tivie    schedule 25.03.2010

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

person Zach Johnson    schedule 25.03.2010
comment
если я прокомментирую первую строку: OptionsForm.OPTS_TabControl1.SelectTab(1), она откроется нормально (конечно, не на той вкладке). Если я раскомментирую, это даст мне NullExceptionError в этой строке. - person Ellome; 25.03.2010