Vb.net 是否可以为每个语句向传递一组文本框名称
我有一个包含7个文本框的表单,我喜欢通过使用“For Each”语句来处理其中的值,因此我使用了以下代码,其中我定义了一个包含文本框名称的字符串数组,并将其成员传递给“me.controls()”,在该语句的行上触发错误:“对象引用未设置为对象的实例”Vb.net 是否可以为每个语句向传递一组文本框名称,vb.net,forms,foreach,textbox,Vb.net,Forms,Foreach,Textbox,我有一个包含7个文本框的表单,我喜欢通过使用“For Each”语句来处理其中的值,因此我使用了以下代码,其中我定义了一个包含文本框名称的字符串数组,并将其成员传递给“me.controls()”,在该语句的行上触发错误:“对象引用未设置为对象的实例” 实现这一点的最佳方法是什么?谢谢当您可以传递文本框时,为什么要传递文本框的名称呢?假设您在设计器中添加了文本框,则会为每个文本框生成一个字段,因此请使用这些字段: Dim文本框={sa,sb,sc,sd,ss,sr,st} 对于文本框中的每个文本
实现这一点的最佳方法是什么?谢谢当您可以传递
文本框
时,为什么要传递文本框的名称呢?假设您在设计器中添加了文本框
,则会为每个文本框生成一个字段,因此请使用这些字段:
Dim文本框={sa,sb,sc,sd,ss,sr,st}
对于文本框中的每个文本框
'在此处使用文本框。
下一个
当您可以传递文本框
时,为什么要传递文本框的名称呢?假设您在设计器中添加了文本框
,则会为每个文本框生成一个字段,因此请使用这些字段:
Dim文本框={sa,sb,sc,sd,ss,sr,st}
对于文本框中的每个文本框
'在此处使用文本框。
下一个
除了根据JMCILHINEY的建议从文本框本身(而不是它们的名称)创建一个数组外,我建议您在尝试对它们进行计算之前,使用来确定用户输入的乘数和等级是否确实是有效的双倍。这将防止错误输入导致运行时异常:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim grades() As TextBox = {sa, sb, sc, sd, ss, sr, st}
Dim x As Double
Dim strX As String = InputBox("what is the multiplier", "Enter Value", "1")
If Double.TryParse(strX, x) Then
For Each s In grades
Dim grade As Double
If Double.TryParse(s.Text, grade) Then
s.Text = Math.Round(grade * x)
End If
Next
Else
MessageBox.Show("Invalid Multiplier")
End If
End Sub
除了按照JMCILHINEY的建议从文本框本身(而不是它们的名称)创建数组外,我建议您在尝试对用户输入的乘数和等级进行计算之前,使用来确定它们是否确实是有效的双倍。这将防止错误输入导致运行时异常:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim grades() As TextBox = {sa, sb, sc, sd, ss, sr, st}
Dim x As Double
Dim strX As String = InputBox("what is the multiplier", "Enter Value", "1")
If Double.TryParse(strX, x) Then
For Each s In grades
Dim grade As Double
If Double.TryParse(s.Text, grade) Then
s.Text = Math.Round(grade * x)
End If
Next
Else
MessageBox.Show("Invalid Multiplier")
End If
End Sub
这很有帮助,谢谢你这很有帮助,谢谢