如何检查表单中的每个文本框是否都为空?

时间:2016-03-09 14:56:39

标签: vb.net if-statement textbox

If dblRoundTrip > 0 And dblRoundTrip < 100 Then
    If dblDaysWorked > 0 And dblDaysWorked < 32 Then
        If dblPerGallon > 0 And dblPerGallon < 50 Then
            If dblGasCost > 0 And dblGasCost < 5 Then
                If dblMaint > 0 And dblMaint < 500 Then
                    If dblParking > 0 and dblParking < 500 Then
                        If dblInsure > 0 And dblInsure < 500 Then
                            blnValidateCheck = True
                        End If
                    End If
                End If
            End If
        End If
    End If
End If

我必须检查所有这些TextBox是一个特定的数字,但我主要担心的是它们实际上是否包含某些内容。我不希望另一个if语句集群检查null TextBoxes。我在想循环语句是最好的,但我不知道如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

首先应检查文本是否可以解析为双倍。使用{'Dogs': True, 'Cats': True} 。您还应该避免嵌套Double.TryParse - 语句。

If

这更具可读性,可测试性和可维护性。

另一种安全方法是使用支持范围的NumericUpDown-control

答案 1 :(得分:0)

  

我主要担心的是,如果他们确实有某些内容

以下是Linq解决方案...(检查TextBox上的任何Form控件是否包含有效Double。此外,我没有解决检查比较问题,因为那不是您的关注......

Public Shared Function TextBoxControlsEmpty(ByVal frm As Form) As Boolean
    Return Not frm.Controls.OfType(Of TextBox)().All(Function(t) Double.TryParse(t.Text, New Double))
End Function 

<强>用法

 If TextBoxControlsEmpty(Me) Then
    'Handle this...
 Else
    'None are empty and are doubles...
 End If