嗨我试图在我的程序中设计一个构建由矩形表示的图层的部分,根据所输入的尺寸决定矩形宽度的结果。我在进入<时遇到问题0它将恢复为1或0。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rectangle As Integer
rectangle = Val(TextBox1.Text)
TextBox1.Text = Convert.ToString(rectangle)
Form2.RectangleShape1.Width = Val(TextBox1.Text)
If Val(TextBox1.Text) >= 1.0 Or Val(TextBox1.Text) <= 1.5 Then
Form2.RectangleShape1.Width = 75
End If
If Val(TextBox1.Text) >= 1.5 Then
Form2.RectangleShape1.Width = 120
End If
If Val(TextBox1.Text) <= 1.0 Then
Form2.RectangleShape1.Width = 55
End If
Form2.RectangleShape1.Show()
Me.Hide()
答案 0 :(得分:1)
很难用提供的信息说出来,我不明白你在做什么,但有些事情似乎有些错误。
我们先来看看这个:
Dim rectangle As Integer
rectangle = Val(TextBox1.Text)
TextBox1.Text = Convert.ToString(rectangle)
Form2.RectangleShape1.Width = Val(TextBox1.Text)
ToString()
分配该值
您可以通过以下方式恢复此行:
Form2.RectangleShape1.Width = CDbl(Val(TextBox1.Text))
我将转换更改为双打,因为我确定您需要小数。整数不能有小数。如果没有小数,这两个条件将完全相同:
If Val(TextBox1.Text) >= 1.0 Or Val(TextBox1.Text) <= 1.5 Then
Form2.RectangleShape1.Width = 75
End If
If Val(TextBox1.Text) >= 1.5 Then
Form2.RectangleShape1.Width = 120
End If
因为你可以有1或2.(所以检查它是否介于1和1.5或1.5和2之间是没有意义的。)
您可能知道这一点,但val将返回字符串中的数字。正如我在评论中提到的那样,为什么不阻止用户输入除数字之外的其他内容?
让我们说你希望得到这个结果:"< 0"
。
"0"
"< 0"
val函数只会返回"0"
所以告诉我你需要"<"
违背你当前的逻辑。 别担心。如果您确保用户只输入您想要的内容(通过限制输入可能的字符),您可以捕获文本框的全部内容。
If myTextBox.Text = "< 1.5" Then
'Do something cool
Else If myTextBox.Text = "< 0" Then
'Do something cooler
Else
'Do nothing
End If