zoukankan      html  css  js  c++  java
  • 【机房收费系统 3】:文本框输入数字、小数点、退格键

    导读:昨晚雄赳赳、气昂昂的去验收机房了。师傅的手,就不是手,全都是爪子。可以把好多好多乱七八糟的问题给抓出来。唉,本来以为做的还蛮好的,结果给硬生生抓出了十三个有待修整的问题。果然,姜,还是老的辣。


    首先,解决文本框的输入限制问题。


    这个问题,是在基本数据设定里被逮出来滴,当师傅卡卡往固定用户每小时费用的输入框里输东西的时候,看着上面的显示结果,顿时傻眼儿了。还是那句老话,出来混,总是要还的。都是以前欠下的债,希望经过这次,会补上一点。

    固定用户每小时费用文本框(为例)的输入:

    Private Sub txtRegularEveryHour_KeyPress(KeyAscii As Integer) '允许输入小数点/数字/退格键

        If KeyAscii < 48 Or KeyAscii > 57 Then '如果输入值不是数字0—9
      
            If KeyAscii = 46 Then '如果输入 小数点
       
                If Trim(txtRegularEveryHour.Text) = "" Or InStr(1, Trim(txtRegularEveryHour.Text), ".") <> 0 Then '如果文本框为空,或者已经输入了小数点
        
                    KeyAscii = 0 '小数点输入无效
                
                Else
                    
                    KeyAscii = 46 '输入小数点
                
                End If

          ElseIf KeyAscii = 8 Then '如果键入空格键

                KeyAscii = 8
                
           Else '如果输入值不是数字、小数点、空格键,则输入无效
            
                KeyAscii = 0
            
            End If

        End If
      
    End Sub


    其次,介绍里面用到的InStr函数。


    语法 
    InStr([start, ]string1, string2[, compare])
    InStr 函数的语法具有下面的参数: 
    部分说明  
    start  可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。  
    string1 必要参数。接受搜索的字符串表达式。 

    string2 必要参数。被搜索的字符串表达式。  
    Compare  可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。   


    然后我用我的代码来简单理解这个函数。


    InStr(1, Trim(txtRegularEveryHour.Text), ".") <> 0

    我从txtRegularEveryHour文本框中,去查找".",第一次在此文本框中出现的位置,当它返回的值不等于零时,说明在文本框中已经出现过".",而在数字表达中,一个数是不能有两个小数点的。因此,KeyAscii = 0,即小数点输入无效。


    最后,总结一下感受。


    经此一役,我终于明白了,每次师傅们验收系统,都会对系统进行破坏性测试。他们明明都知道怎样使才对,可是就偏偏不那样做。而,每次师傅们用到的测试方法,应该就是《信息系统开发与管理》中,传说的黑盒测试。我希望有一天,我能做出一个明明有漏洞,却让人发现不了的软件。哈哈哈哈哈哈,任你怎么破坏,它就是死不了。就像昨天我跟师傅说的:师傅,我就希望有一天,我能做出一个,除了我,别人都不会维护的系统。


    唉,改完了一个类型滴,明儿接着干。。。。。。。。鸡窝垒造中!





    请大家多多指教,谢谢!

  • 相关阅读:
    linux安装mysql5.6全流程
    linux安装redis集群全流程
    脑图-流程图-ppt制作工艺
    控制台添加log4net
    正则表达式非获取匹配的用法
    Win10查看已存储WiFi密码的两种方法
    redis中list set zset的区别
    Topshelf 搭建 Windows 服务
    SQLSERVER 自增列跳ID 1W-1K问题
    sqlserver 自增列(id)跳跃问题,一下就跳过一千多个id
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010479.html
Copyright © 2011-2022 走看看