VB文本框和宽度问题

时间:2013-05-24 20:07:26

标签: vb.net visual-studio-2010

嗨我试图在我的程序中设计一个构建由矩形表示的图层的部分,根据所输入的尺寸决定矩形宽度的结果。我在进入<时遇到问题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()

1 个答案:

答案 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