1

문자 그대로 방금 VB 프로그래밍을 시작했습니다. 내 무능력을 용서하십시오.별도의 창 양식에서 tabPage 호출

현재 TabControl (BusinessSalesPage.vb라고 불림)과 다른 페이지 (BusinessSalesPage.vb)를 통해 탐색 할 수있는 창이있는 두 개의 창이 있습니다. 다른 하나는 별도입니다 (BusinessQuestion.vb). BusinessSalesPage.vb에서 단추를 누르면 두 번째 창 양식이 열립니다.

두 번째 창이 열리면 두 개의 단추가 있습니다. 사용자가 첫 번째 창 (BusinessSalesPage.vb)에있는 TabControl에서 세 번째 탭으로 이동하는 단추 하나를 클릭 할 수있게하려고합니다. 미리 감사드립니다. - 개체 참조가 개체의 인스턴스로 설정되지 않았습니다

는 NullReferenceException이 처리되었습니다

여기
Public Class BusinessQuestion 
Inherits System.Windows.Forms.Form 
Friend WithEvents mainMenu As System.Windows.Forms.TabControl 
Friend WithEvents TabPage3 As System.Windows.Forms.TabPage 

Private Sub yesButn_Click(sender As Object, e As EventArgs) Handles yesButn.Click 

    mainMenu.SelectedTab = TabPage3() 

End Sub 
End Class 

나는 점점 오전 오류는 다음과 같습니다

여기 내 코드입니다.

Public Class BusinessSalesPage 
Inherits System.Windows.Forms.Form 
Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    mainMenu.SelectedTab = TabPage2 
    BusinessQuestion.Show() 

End Sub 
End Class 

답변

1

편집 당신은 mainForm의 실제 인스턴스에 대한 참조가 필요합니다. 당신은 현재하지 않습니다.

당신은 생성자에서 참조를 전달 시도 할 수 있습니다 :

Public Class BusinessQuestion 
    ' code... 
    Public Sub New(mainMenu As TabControl, tabPage3 As TabPage) 
    InitializeControls() 
    Me.mainMenu = mainMenu 
    Me.TabPage3 = tabPage3 
    End Sub 
    ' code... 
End Class 

귀하의 BusinessSalesPage 아마 다음과 비슷한 모습이 될 것입니다

Public Class BusinessSalesPage 
    Inherits System.Windows.Forms.Form 

    Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    mainMenu.SelectedTab = TabPage2 

    Dim bq As New BusinessQuestion(mainMenu, TabPage3) 
    bq.ShowDialog()   
    End Sub 
End Class 
+0

덕분에 내가 가진 이 코드를 시도하고이 오류가 발생했습니다 : 비공유 회원에 대한 참조 객체 참조가 필요합니다. BusinessSalesPage.vb의 BusinessQuestion.show()에 관한 것입니다. – Beanz

+0

@DannyCarman 여기에서 코드를 볼 수는 없지만 객체를 생성하지 않은 것처럼 들립니다. 'Dim f 새로운 BusinessQuestion (mainMenu, TabPage3)''f.Show()'또는'f.ShowDialiog)'. – LarsTech

+0

자, 내 게시물을 업데이트했습니다. – Beanz

1

@LarsTech은 나뿐만 아니라이 시도했지만 광산에 문제가있다 코드. 첫 번째 양식에서 mainMenu.SelectedTab = TabPage 1을 입력하면 오류가 발생합니다. "SelectedTab은 System.Windows.Forms.MainMenu의 멤버가 아니며 TabPage1이 선언되지 않았습니다. 보호 수준으로 인해 액세스 할 수 없습니다. .

첫 번째 양식 :

Public Class WCC 
    Inherits System.Windows.Forms.Form 

    Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    mainMenu.SelectedTab = TabPage1 

    Dim MSO As New MSO2014CC(mainMenu:=, TabPage1:=) 
    MSO.ShowDialog()   

    End Sub 
End Class 

두 번째 형태 : 그것은 여기에 내가 VS 2010에서 오전 InitializeControls 만 InitializeComponents을 찾을 수 없습니다 doen은 내 코드입니다. 답장을

Public Class MSO2014CC 
Inherits System.Windows.Forms.Form 
Friend WithEvents mainMenu As System.Windows.Forms.TabControl 

    Public Sub New(mainMenu As TabControl, tabPage1 As TabPage) 
    InitializeComponent() 
    Me.mainMenu = mainMenu 
    Me.TabPage1 = tabPage1 

    End Sub 
End Class