2010-03-25 2 views
1

나는 tabcontrol과 4 개의 탭이있는 폼이있다. 미리 지정된 탭에 showdialog를 사용하여 양식을 열려고합니다.결정된 탭에서 양식을 여는 방법은 무엇입니까? VBnet.

나는

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

을 시도했지만 작동하지 않았다.

어떤 도움이 필요합니까? 덕분에

+0

"작동하지 않음"이란 정확히 무엇을 의미합니까? 양식이 보이지 않았습니까? 양식이 보이지만 탭이 선택되지 않았습니까? –

+0

NullReferenceException을 던졌습니다. – Ellome

답변

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) 

주를 사용하여 양식을 호출 오버로드는 기본적으로 서로 다른 인수를 받아들이는 subrotine의 다른 인스턴스를 만드는

는 방법은 다음과 같습니다. 더 알고 싶다면 매뉴얼의 342-358 페이지를 읽으십시오.

+0

첫 번째 해결 방법으로 작업했습니다. 감사! – Ellome

1

NullReferenceException이 나오므로 null 개체의 위치를 ​​확인하려면 호출을 분리해야합니다. 탭 컨트롤이 null입니까?

+0

첫 번째 줄에 주석을 달면 OptionsForm.OPTS_TabControl1.SelectTab (1) 물론 열립니다 (물론 잘못된 탭에서). 주석 처리를 제거하면 해당 줄에 NullExceptionError가 표시됩니다. – Ellome

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 
관련 문제