1

タブコントロールと4つのタブがあるフォームがあります。あらかじめ決められたタブにshowdialogのあるフォームを開きたい。

私はもう試した

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

しかし、それは機能しませんでした。

何か助けはありますか?ありがとう

4

3 に答える 3

2

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ページをお読みください。

于 2010-03-25T05:07:26.257 に答える
1

を取得しているのでNullReferenceException、呼び出しを分離してnullオブジェクトがどこにあるかを確認する必要があります。タブコントロールはnullですか?

于 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 に答える