在我的程序中,我有一个名为“txtWallH”的文本框,其中我想要输入2.4到6之间的数字,我已经完成了。 (虽然如果有人能提出一个更好的方式,那就更好了)
因此,如果不满足此参数,则会显示msgbox,并清除该字段。我还希望在没有输入任何内容时发生这种情况。
这是我的代码:
If TxtWallH.Text <= 2.39 Or TxtWallH.Text >= 6.01 Or TxtWallH.Text = "" Then
MsgBox("Please enter a value between 2.4m and 6.0m (wall height).")
TxtWallH.Clear()
End If
由于
答案 0 :(得分:1)
使用String.IsNullOrWhiteSpace(如果您的框架版本低于4,则使用String.IsNullOrEmpty)以检查是否输入了任何内容。另外,我建议使用OrElse而不是Or。另外,我建议明确地解析这个值:
Dim value As Double
If String.IsNullOrWhiteSpace(TxtWalH.Text) OrElse Not Double.TryParse(TxtWalH.Text, value) OrElse value < 2.4 OrElse value > 6.0 Then
MsgBox("Please enter a value between 2.4m and 6.0m (wall height).")
TxtWallH.Clear()
End If
答案 1 :(得分:0)
If IsNumeric(TxtWallH.Text) And (TxtWallH.Text > 2.40 Or TxtWallH.Text < 6.00) Then
'Processing goes here
Else
MsgBox("Please enter a value between 2.4m and 6.0m (wall height).")
TxtWallH.Clear()
End If
这将考虑非数字和空白输入。随意更改&gt;和&lt; to&gt; =和&lt; =如果2.40和6.00仍然是有效的输入(如果它们是否存在则不完全清楚......)
答案 2 :(得分:0)
NumericUpDown控件的最小值为2.4,最大值为6,增量为.1将自动限制该值,您可以随意使用它。
您可以根据需要设置增量。用户可以滚动到该值或键入它。
答案 3 :(得分:0)
试试这个。
If Not (val(TxtWallH.Text) > 2.4 AND val(TxtWallH.Text) < 6.00) AND TxtWallH.Text <> "" Then
MsgBox("Please enter a value between 2.4m and 6.0m (wall height).")
TxtWallH.Clear()
End If
(val(TxtWallH.Text)&gt; 2.4 AND val(TxtWallH.Text)&lt; 6.00)
此行将检查文本框的 VALUE 是否 BETWEEN 2.4和6.