vb6 - 提供错误输出的大于/小于语句

时间:2013-12-14 00:21:03

标签: textbox vb6 compare operators

我有一个VB6表单,其中包含最小值和最大值的文本框。文本框的MaxLength为4,我有keyPress事件的代码将其限制为数字输入。代码检查以确保max> min,但它表现得非常奇怪。它似乎是在比较科学记数法或其他东西的价值观。例如,它评估30> 200 =真,100> 20 =错误。但是,如果我将条目更改为030> 200和100> 020,然后它给了我正确的答案。有谁知道为什么会以这种方式行事?

我的代码如下,我使用控制数组作为最小和最大文本框。

For cnt = 0 To 6
    If ParameterMin(cnt) > ParameterMax(cnt) Then
        MsgBox ("Default, Min, or Max values out of range. Line not updated.")
        Exit Sub
    End If
Next cnt

2 个答案:

答案 0 :(得分:2)

这就是文本比较对于表示为可变长度文本的数字的行为(一般而言,不仅仅是VB6)。

  • 将零填充到固定长度并继续比较为文本(如您所述)

OR

  • (首选)转换为整数,然后进行比较。

答案 1 :(得分:0)

如果我理解正确,您可以将代码更改为

如果Val(ParameterMin(cnt))> Val(ParameterMax(cnt))然后

我想建议一件事 - (恕我直言......)如果可能的话,避免在key_press / key_up / key_down期间检查数据。

您可以更改GUI以包含“提交”按钮并检查您的“表单”吗?

希望我帮助过......