对象引用未设置为VB.NET中对象的实例
为什么我的代码会出现“对象引用未设置为对象实例”的错误对象引用未设置为VB.NET中对象的实例,vb.net,instance,Vb.net,Instance,为什么我的代码会出现“对象引用未设置为对象实例”的错误 Public Class Form2 Dim i As Integer = 0 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMainMenu.Click Me.Close() End Sub Private Sub btnEnterPatient_Cli
Public Class Form2
Dim i As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMainMenu.Click
Me.Close()
End Sub
Private Sub btnEnterPatient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnterPatient.Click
Names(i) = txtPatientName.Text
i = i + 1
End Sub
End Class
Names()是一个全局变量
谢谢
更新:
Module Module1
Public Names() As String
Public Heights() As Integer
Public Weights() As Integer
End Module
Public Class Form2
Dim i As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMainMenu.Click
Me.Close()
End Sub
Private Sub btnEnterPatient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnterPatient.Click
ReDim Preserve Names(0 To i)
Names(i) = txtPatientName.Text
ReDim Preserve Heights(0 To i)
Heights(i) = txtPatientHeight.Text
ReDim Preserve Weights(0 To i)
Weights(i) = txtPatientWeight.Text
i = i + 1
End Sub
End Class
您需要将模块公开。所以我建议如下
Public Module Module1
Public Names() As String
Public Heights() As Integer
Public Weights() As Integer
End Module
然后以如下形式访问它
Dim mod1 = Module1
mod1.Names(i) = txtPatientName.Text
如果您坚持使用模块,则应重新定义并保留阵列
Public Module Module1
Public i As Integer = 0
Public Names() As String
Public Heights() As Integer
Public Weights() As Integer
End Module
Public Class Form1
Dim i As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub btnEnterPatient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ReDim Preserve Names(0 To i)
Names(i) = txtpatientName.Text
ReDim Preserve Heights(0 To i)
Heights(i) = txtpatientheight.Text
ReDim Preserve Weights(0 To i)
Weights(i) = txtpatientweight.Text
i = i + 1
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
For Each j In Names
MsgBox(j.ToString)
Next
End Sub
End Class
哪一行出错?什么是名字?是阵列吗?名字的代号在哪里?什么是名字?是数组吗?错误指向:Names(i)=txtPatientName.Text,Names是一个数组,它被声明为模块中所有表单的全局变量。我确定您无法访问此变量,因此会出错吗?你能说明名称是如何宣布的吗?你需要将模块声明为公共模块模块1我仍然收到错误“'Module1'是一种类型,不能用作表达式”这是正确的操作过程,但在添加记录时,该数组需要在事件上“redim preserve”。谢谢按钮2的代码为我工作,然而,“i”在第一次单击时只会增加一次,在输入另一个名称后,它不会增加。因为我在表格1中标注了尺寸。将I添加到您的模块中Public i As Integer=0`从同一表单(form1)中诚实地说,它的工作原理应该是相同的,但要使它在表单之间兼容,您仍然需要这样做。我将它添加到了我的模块中,但是在它达到1之后,它仍然不会增加。在您增加i之后,将MsgBox(i.ToString)添加到按钮2。它应该是一个增量。在我的资料中确实如此。