import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 )
winform.add(
edit={ bottom=128;right=256;left=88;top=104;font=LOGFONT( name="宋体";h=-12 );z=1;text="";edge=1;cls="edit" }
)
/*}}*/

//监视传递给edit的所有消息,并针对需要干预的情况做处理
winform.edit.wndproc = function(hwnd,message,wParam,lParam){
//如果有_WM_CHAR消息传给edit
    if (message == 0x102/*_WM_CHAR*/) {
   //如果字符的ASCII码大于等于0或等于小于9
        if (wParam >= '0'# && wParam <= '9'#) {
        //返回空,即按系统默认的方法继续(不干预系统的正常流程)
            return;
        }
        //选择wParam参数,针对它的不同值处理
        select wParam {
        //为"-"的ASC码的时候
            case '-'# {
            //如果edit控件中没有任何字符,-只能在最前面
                if (#winform.edit.text == 0)
                        //返回空,即按系统默认的方法继续(不干预系统的正常流程)
                    return;
            }
            case '.'# {
                        //如果edit控件中匹配不到小数点并且能匹配到数字(因为小数点只能有一个并且必须跟在数字后面)
                if ( ! string.match(winform.edit.text, "\.") and string.match(winform.edit.text, "\d"))
                    return;

            }

           //对于删除键,等控制键不干预不处理
            case 0x8/*_VK_BACK*/, 0xD/*_VK_RETURN*/, 0x2E/*_VK_DELETE*/ {
                return;
            }

        }
        //其它字符录入一概阻断
        return 1;
    }
}

winform.show();
win.loopMessage();

  

【aardio】如何让edit控件只能输入数字、小数点及 - 号的更多相关文章

  1. VB里的TEXT控件只能输入数字的代码

    " '先声明一个常量,并把你想禁用或允许输入的内容赋值给它 Private Sub Text1_KeyPress(KeyAscii As Integer) '只能输入数字 KeyAscii ...

  2. winform_textbox控件只能输入数字

    //实现只限制输入数字事件 private void txtShowNum_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = tru ...

  3. 执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.

    执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确. type TForm1 = class(TForm) Edit1: TEdit ...

  4. js正则表达式限制文本框只能输入数字,小数点,英文字母

    1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafter ...

  5. 自定义Edit控件控制输入范围

    //自定义Edit,实现十六进制输入控制,使用OnChar()函数实现 //MyEdit.h #pragma once class CMyEdit : public CEdit { DECLARE_D ...

  6. DevExpress的SpinEdit控件无法输入数字的问题

    今天在发布程序后突然发现了这个问题,刚开始很莫名其妙的,因为在调试时从来没碰到过.然后经过测试发现,这个问题的原因和输入法有很大关系: 当你的输入法是中文状态时,是无法向框中输入数字的,此时只能点击上 ...

  7. js 限制只能输入数字小数点

    function checkNum(e) { var re = /^\d+(?=\.{0,1}\d+$|$)/ if (e.value != "") { if (!re.test( ...

  8. 用Jquery控制文本框只能输入数字和字母及jquery自定义方法$.fn

    封装成onlyNum(),onlyAlpha()和onlyNumAlpha()3个Jquery扩展方法,方便复用,由于里面一些JS代码涉及到了"禁用输入法,获取剪切板的内容",而& ...

  9. JS验证只能输入数字,数字和字母等的正则表达式

    JS判断只能是数字和小数点 0.不能输入中文1)<input onpaste="return false;" type="text" name=" ...

随机推荐

  1. Webservice 从客户端中检测到有潜在危险的 request.form值[解决方法]

    <system.web> <httpRuntime requestValidationMode="2.0" /> <pages validateReq ...

  2. 【HDFS API编程】查看HDFS文件内容、创建文件并写入内容、更改文件名

    首先,重点重复重复再重复: /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)创建 Configuration * 2)获取 FileSystem * 3)...剩下的就是 ...

  3. make apr-util 报错 all recurisive

    安装expat库: yum install expat-devel 再次make 即可.

  4. Docker笔记——jenkins镜像制作

    jenkins官方路径:https://hub.docker.com/_/jenkins/ 最新Dockerfile路径:https://github.com/jenkinsci/docker/blo ...

  5. ExcelPackage 读取、导出excel

    private static string GetString(object obj) { try { return obj.ToString(); } catch (Exception ex) { ...

  6. OJ每日一练试水第1天,聊聊输入输出问题

    目录 多组输入 第一题 多组冒泡排序 (难度2颗星版本) (难度3颗星版本) (难度4颗星版本) scanf返回值 时间:2019.4.26 @( 每日一练01) 先借鉴一下ACM的输入格式 OJ题中 ...

  7. 深度学习实战-强化学习-九宫格 当前奖励值 = max(及时奖励 + 下一个位置的奖励值 * 奖励衰减)

    强化学习使用的是bellmen方程,即当前奖励值 = max(当前位置的及时奖励 + discout_factor * 下一个方向的奖励值)   discount_factor表示奖励的衰减因子 使用 ...

  8. 使用IntelliJ IDEA 配置Maven

    创建一个本地仓库路径 配置本地仓库路径 配置maven环境变量 配置maven环境变量 打开命令输入 : mvn version,配置成功如下图所示: 在IntelliJ IDEA中配置maven f ...

  9. mysql 采样查询 / 间隔查询 / 跳跃查询的两种实现思路

    先创建一张测试表 CREATE TABLE `test` ( `id` ) DEFAULT NULL, `) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET= ...

  10. jQuery之位置坐标图形相关方法

    jQuery实例方法-位置图形 位置坐标图形大小相关方法: .offset() .position() .scrollTop() ..scrollLeft() .width()..height() . ...