Vb.net 当文本框为空时,将空白文本框计为0值
我已经编写了以下代码:Vb.net 当文本框为空时,将空白文本框计为0值,vb.net,Vb.net,我已经编写了以下代码: Dim i As Integer Dim pos As Integer = 0 Dim neg As Integer = 0 Dim zer As Integer = 0 Dim TextBoxes() As String = {Val(TextBox1.Text), Val(TextBox2.Text), Val(TextBox3.Text), Val(TextBox4.Text),
Dim i As Integer
Dim pos As Integer = 0
Dim neg As Integer = 0
Dim zer As Integer = 0
Dim TextBoxes() As String = {Val(TextBox1.Text), Val(TextBox2.Text),
Val(TextBox3.Text), Val(TextBox4.Text),
Val(TextBox5.Text), Val(TextBox6.Text),
Val(TextBox7.Text), Val(TextBox8.Text),
Val(TextBox9.Text), Val(TextBox10.Text)}
For i = 0 To 9
If TextBoxes(i) > 0 Then
pos += 1
End If
If TextBoxes(i) < 0 Then
neg += 1
End If
If TextBoxes(i) = 0 Then
zer += 1
End If
Next i
Label4.Text = (pos)
Label5.Text = (neg)
Label6.Text = (zer)
Dim i作为整数
Dim pos作为整数=0
Dim neg为整数=0
作为整数的Dim zer=0
Dim textboxs()作为字符串={Val(TextBox1.Text),Val(TextBox2.Text),
Val(TextBox3.Text),Val(TextBox4.Text),
Val(TextBox5.Text),Val(TextBox6.Text),
Val(TextBox7.Text),Val(TextBox8.Text),
Val(TextBox9.Text),Val(TextBox10.Text)}
对于i=0到9
如果文本框(i)>0,则
pos+=1
如果结束
如果文本框(i)<0,则
负+=1
如果结束
如果文本框(i)=0,则
zer+=1
如果结束
接下来我
标签4.Text=(位置)
Label5.Text=(负)
Label6.Text=(zer)
当程序执行时,我将一些值放入文本框中,输出如下所示。第一个文本框包含正的1
,另一个文本框包含负的-1
。它工作得很好
问题出现在这里:程序将空框计数为0
,并以零的总数显示8
。其他8个文本框全部留空。如何解决此问题,使其不会将空文本框计算为0
作为参考,这里是我之前解决的相关问题:问题是您正在调用
Val
函数以获取每个文本框中的值<如果给定文本为空或非数字,则code>Val返回0
。如果要检查,只需将原始字符串存储在数组中,然后检查循环中的值,如下所示:
Dim i As Integer
Dim pos As Integer = 0
Dim neg As Integer = 0
Dim zer As Integer = 0
Dim TextBoxes() As String = {TextBox1.Text, TextBox2.Text,
TextBox3.Text, TextBox4.Text,
TextBox5.Text, TextBox6.Text,
TextBox7.Text, TextBox8.Text,
TextBox9.Text, TextBox10.Text}
For i = 0 To 9
If TextBoxes(i) <> String.Empty Then
If Val(TextBoxes(i)) > 0 Then
pos += 1
End If
If Val(TextBoxes(i)) < 0 Then
neg += 1
End If
If Val(TextBoxes(i)) = 0 Then
zer += 1
End If
End If
Next i
Label4.Text = pos.ToString()
Label5.Text = neg.ToString()
Label6.Text = zer.ToString()
Dim i作为整数
Dim pos作为整数=0
Dim neg为整数=0
作为整数的Dim zer=0
Dim textboxs()作为字符串={TextBox1.Text,TextBox2.Text,
TextBox3.Text,TextBox4.Text,
TextBox5.Text,TextBox6.Text,
TextBox7.Text,TextBox8.Text,
TextBox9.Text,TextBox10.Text}
对于i=0到9
如果文本框(i)为字符串。则为空
如果Val(文本框(i))>0,则
pos+=1
如果结束
如果Val(文本框(i))<0,则
负+=1
如果结束
如果Val(文本框(i))=0,则
zer+=1
如果结束
如果结束
接下来我
Label4.Text=位置ToString()
Label5.Text=neg.ToString()
Label6.Text=zer.ToString()
但是,提供
Val
功能主要是为了向后兼容VB6。它可以工作,但我建议改用Integer.TryParse
。注意,我还在最后三行中添加了ToString
。正如其他人所提到的,您应该将选项严格设置为
问题是您正在调用Val
函数以获取每个文本框中的值<如果给定文本为空或非数字,则code>Val返回0
。如果要检查,只需将原始字符串存储在数组中,然后检查循环中的值,如下所示:
Dim i As Integer
Dim pos As Integer = 0
Dim neg As Integer = 0
Dim zer As Integer = 0
Dim TextBoxes() As String = {TextBox1.Text, TextBox2.Text,
TextBox3.Text, TextBox4.Text,
TextBox5.Text, TextBox6.Text,
TextBox7.Text, TextBox8.Text,
TextBox9.Text, TextBox10.Text}
For i = 0 To 9
If TextBoxes(i) <> String.Empty Then
If Val(TextBoxes(i)) > 0 Then
pos += 1
End If
If Val(TextBoxes(i)) < 0 Then
neg += 1
End If
If Val(TextBoxes(i)) = 0 Then
zer += 1
End If
End If
Next i
Label4.Text = pos.ToString()
Label5.Text = neg.ToString()
Label6.Text = zer.ToString()
Dim i作为整数
Dim pos作为整数=0
Dim neg为整数=0
作为整数的Dim zer=0
Dim textboxs()作为字符串={TextBox1.Text,TextBox2.Text,
TextBox3.Text,TextBox4.Text,
TextBox5.Text,TextBox6.Text,
TextBox7.Text,TextBox8.Text,
TextBox9.Text,TextBox10.Text}
对于i=0到9
如果文本框(i)为字符串。则为空
如果Val(文本框(i))>0,则
pos+=1
如果结束
如果Val(文本框(i))<0,则
负+=1
如果结束
如果Val(文本框(i))=0,则
zer+=1
如果结束
如果结束
接下来我
Label4.Text=位置ToString()
Label5.Text=neg.ToString()
Label6.Text=zer.ToString()
但是,提供
Val
功能主要是为了向后兼容VB6。它可以工作,但我建议改用Integer.TryParse
。注意,我还在最后三行中添加了ToString
。正如其他人所提到的,您应该将选项严格设置为
是的,您可以解决您的问题。开始在VS选项中设置选项STRICT ON。@Rob我以后会小心的。@Steve在使用STRICT选项后变得很难解决您的问题。空文本框不应计为0?@SATSON是。但是我的问题解决了……是的,你可以解决你的问题。开始在VS选项中设置选项STRICT ON。@Rob我以后会小心的。@Steve在使用STRICT选项后变得很难解决您的问题。空文本框不应计为0?@SATSON是。但是我的问题解决了……我按照保罗的程序解决了我以前的问题。(). 我想解决我自己的代码。我按照保罗的程序解决了我之前的问题。(). 我想解决我自己的代码。希望你能做到。