Vb.net 从单独的窗口窗体调用选项卡页
我今天才真正开始编程VB;所以请原谅我的无能 我目前有两个窗口窗体,一个是通过TabControl(称为BusinessSalesPage.vb)浏览不同的页面,另一个是单独的(BusinessQuestion.vb)。当按下BusinessSalesPage.vb上的按钮时,第二个窗口窗体打开 当第二个窗口打开时,它有两个按钮,我希望用户能够单击一个按钮,然后将它们从第一个窗口(BusinessSalesPage.vb)上的TabControl转到第三个选项卡。提前谢谢 这是我的密码:Vb.net 从单独的窗口窗体调用选项卡页,vb.net,visual-studio-2012,tabcontrol,nullreferenceexception,tabpage,Vb.net,Visual Studio 2012,Tabcontrol,Nullreferenceexception,Tabpage,我今天才真正开始编程VB;所以请原谅我的无能 我目前有两个窗口窗体,一个是通过TabControl(称为BusinessSalesPage.vb)浏览不同的页面,另一个是单独的(BusinessQuestion.vb)。当按下BusinessSalesPage.vb上的按钮时,第二个窗口窗体打开 当第二个窗口打开时,它有两个按钮,我希望用户能够单击一个按钮,然后将它们从第一个窗口(BusinessSalesPage.vb)上的TabControl转到第三个选项卡。提前谢谢 这是我的密码: Pub
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
以下是我得到的错误:
已处理NullReferenceException-对象引用未设置为对象的实例
编辑
您需要对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
您需要对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
@LarsTech我也试过,但我的代码有问题。在第一种形式上,当我键入Main Menu.SelectedTab=TabPage 1时,我得到错误:“SelectedTab不是System.Windows.Forms.mainMenu的成员,并且TabPage1未声明。由于其保护级别,它可能无法访问。在第二种形式上,它找不到InitializeControl,只找到InitializeComponents。我在VS 2010中,下面是我的代码:
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 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
第二种形式:
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
@LarsTech我也尝试过,但我的代码有问题。在第一个窗体上,当我键入Main Menu.SelectedTab=TabPage 1时,我得到错误:“SelectedTab不是System.Windows.Forms.mainMenu的成员,TabPage 1未声明。由于其保护级别,可能无法访问。在第二种形式中,它没有找到InitializeControl,只有InitializeComponents。我在VS 2010中,以下是我的代码:
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 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
第二种形式:
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
谢谢你的回复。我已经尝试过这段代码,现在收到这个错误:对非共享成员的引用需要对象引用。这是关于BusinessSalesPage.vb中的BusinessQuestion.show()。@DannyCarman从这里看不到您的代码,但听起来好像您没有创建对象:
Dim f As new BusinessQuestion(主菜单,TabPage3)
然后f.show()
或f.ShowDialiog()
@DannyCarman非常肯定我的第一条评论解决了空值问题。@LarsTechm空值错误不是问题,新错误是“引用非共享成员需要对象引用”。您的回答是“Dim f As new BusinessQuestion(Main Menu,TabPage3),然后是f.Show()或f.ShowDialiog()不确定在哪里需要它。@DannyCarman您可以用我的代码替换BusinessQuestion.Show()
。BusinessQuestion是您的表单类,因此您必须使用new
关键字创建它。然后用你给它起的名字引用它,在我的例子中是f
。试着给它起个更好的名字。如果需要在当前方法之外引用,则可能必须将f
的声明移动到BusinessSalesPage的表单声明中。我更新了帖子。谢谢回复。我已经尝试过这段代码,现在收到这个错误:对非共享成员的引用需要对象引用。这是关于BusinessSalesPage.vb中的BusinessQuestion.show()。@DannyCarman从这里看不到您的代码,但听起来好像您没有创建对象:Dim f As new BusinessQuestion(主菜单,TabPage3)
然后f.show()
或f.ShowDialiog()
@DannyCarman非常肯定我的第一条评论解决了空值问题。@LarsTechm空值错误不是问题,新错误是“引用非共享成员需要对象引用”。您的回答是“Dim f As new BusinessQuestion(Main Menu,TabPage3),然后是f.Show()或f.ShowDialiog()不确定在哪里需要它。@DannyCarman您可以用我的代码替换BusinessQuestion.Show()
。BusinessQuestion是您的表单类,因此您必须使用new
关键字创建它。然后用你给它起的名字引用它,在我的例子中是f
。试着给它起个更好的名字。如果需要在当前方法之外引用,则可能必须将f
的声明移动到BusinessSalesPage的表单声明中。我更新了帖子。