当前,我正在一个项目中,用户在文本框中输入6个名称,然后每个名称5个数字。该程序旨在将每个名称及其关联的编号插入结构数组以及这些编号的平均值中,这些也将显示在表单上。我真的不想直接初始化36个变量,所以我开始寻找在循环中循环浏览文本框的方法。经过一番搜索,我发现有人建议我使用类似这样的方式来访问控件:
Me.Controls("txtTextBoxName" & variable)
使用这个想法,我创建了以下代码来处理我的过程:
Dim intCount As Integer
Dim i As Integer
Dim dblTempAvg As Double
Try
For intCount = 0 To 5
dblTempAvg = 0
ClassScores(intCount).strName = Me.Controls("txtStudent" & (intCount + 1)).Text
For i = 1 To 5
ClassScores(intCount).dblTestAvg = CDbl(Me.Controls("txtStudent" & (intCount + 1) & "Test" & i).Text)
dblTempAvg = dblTempAvg + ClassScores(intCount).dblTestAvg
Next
dblTempAvg = dblTempAvg / 5
Me.Controls("lblAvg" & (intCount - 1)).Text = dblTempAvg.ToString("p")
ClassScores(intCount).dblTestAvg = dblTempAvg
Next
Catch ex As Exception
MessageBox.Show("Error: Please enter all names and test scores")
End Try
问题是,当我尝试调试此程序时,该程序在System.NullReference异常的第一个Me.Controls语句处停止。老实说,我被困在这一点上,有人可以帮我弄清楚我哪里出了问题吗?提前致谢。
答案 0 :(得分:0)
由于jmcihinney的建议,我得以解决(很抱歉,我无法弄清楚如何回应评论)。我忽略了提及我所有的控件都在一个组框中,我用组框的名称替换了我,并且程序运行正常