Vb.net 如何在visual basic.net中使用标签对象初始化数组
所讨论的代码具体位于第143行。每当我尝试访问数组中的标签(如so Dicelbls(0).Text)时,我都会收到一个空引用错误。显然,我没有正确地声明数组,有什么建议吗?你是对的,问题在第143行:Vb.net 如何在visual basic.net中使用标签对象初始化数组,vb.net,visual-studio,Vb.net,Visual Studio,所讨论的代码具体位于第143行。每当我尝试访问数组中的标签(如so Dicelbls(0).Text)时,我都会收到一个空引用错误。显然,我没有正确地声明数组,有什么建议吗?你是对的,问题在第143行: Dim Dicelbls As Label() = {lblP1Die0, lblP1Die1, lblP1Die2, lblP2Die0, lblP2Die1, lblP2Die2, lblP1Score, lblP2Score} 具体来说,在对象初始化过程中,当此代码运行时,这些标签变量后
Dim Dicelbls As Label() = {lblP1Die0, lblP1Die1, lblP1Die2, lblP2Die0, lblP2Die1, lblP2Die2, lblP1Score, lblP2Score}
具体来说,在对象初始化过程中,当此代码运行时,这些标签变量后面的引用仍然为null/Nothing。所以你在数组中没有任何引用
要修复代码,请将初始化移到Form_Load事件。尝试在Form_Load事件中添加初始化
Dim Dicelbls As Label()
Private Sub Form1_Load(..)
Dicelbls= new Label() {lblP1Die0, lblP1Die1, lblP1Die2, lblP2Die0, lblP2Die1, lblP2Die2, lblP1Score, lblP2Score}
....
End Sub
您正确地声明了数组,但在错误的位置。将变量声明保留在原处,并在创建表单后将赋值移动到某个位置
Class frmMain
Dim Dicelbls As Label()
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
Dicelbls = {lblP1Die0, lblP1Die1, lblP1Die2, lblP2Die0, lblP2Die1, lblP2Die2, lblP1Score, lblP2Score}
End Sub
...
End Class
试试这个:
Dim Dicelbls(8) As Label
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
Dicelbls = {lblP1Die0, lblP1Die1, lblP1Die2, lblP2Die0, lblP2Die1, lblP2Die2, lblP1Score, lblP2Score}
End Sub
可能重复编写一个小代码来调试/测试标签数组。