Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 当文本框为空时,将空白文本框计为0值_Vb.net - Fatal编程技术网

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是。但是我的问题解决了……我按照保罗的程序解决了我以前的问题。(). 我想解决我自己的代码。我按照保罗的程序解决了我之前的问题。(). 我想解决我自己的代码。希望你能做到。