找回密码
 加入
搜索
查看: 3597|回复: 13

[AU3基础] 如何限制 输入框的 值 的范围?[已解决]

  [复制链接]
发表于 2012-5-8 18:39:52 | 显示全部楼层 |阅读模式
本帖最后由 魔导 于 2012-5-9 22:57 编辑

再次感谢各位前辈,   正解在   2楼  和  A大   还有   小龙 的说
不使用 IF 之类的 语句 主动限制  输入框的值的范围  
就像用这个的限制  把  值的范围限制
$input = GUICtrlCreateInput("",65,2,80,15,0x2000)

小弟找了一圈没找到,请各位大大指点指点。。。万分感谢!
发表于 2012-5-8 18:53:08 | 显示全部楼层
早上也就你提问的吧
下面的不合你胄口?
并且啥叫“主动限制”?

http://www.autoitx.com/thread-32087-1-1.html
发表于 2012-5-8 18:57:45 | 显示全部楼层
楼上辛辛苦苦给你写了,你居然不看,唉。。。
发表于 2012-5-8 18:58:10 | 显示全部楼层
发表于 2012-5-9 14:01:13 | 显示全部楼层
回复 1# 魔导

好像没有吧,还得判断.
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>

$Form1 = GUICreate("只能输入1-50", 341, 208, 192, 124)
$Input1 = GUICtrlCreateInput("", 72, 40, 153, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2)
GUISetState()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
        $read = GUICtrlRead($Input1)
        If Not StringRegExp($read, '^[1-5]?(?:(?<=[0-4])\d|(?<=5)0)?$', 0) Then
                GUICtrlSetData($Input1, StringTrimRight($read, 1))
        EndIf
WEnd



#include <EditConstants.au3>
#include <GUIConstantsEx.au3>

$Form1 = GUICreate("只能输入1-50", 341, 208, 192, 124)
$Input1 = GUICtrlCreateInput("", 72, 40, 153, 20, $ES_NUMBER)
GUICtrlSetLimit(-1, 2)
GUISetState()

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
        $read = GUICtrlRead($Input1)
        Switch $read
                Case 1 To 50
                Case Else
                        GUICtrlSetData($Input1, StringTrimRight($read, 1))
        EndSwitch
WEnd
 楼主| 发表于 2012-5-9 22:46:26 | 显示全部楼层
本帖最后由 魔导 于 2012-5-9 22:56 编辑

回复 2# happytc


    就是这个东西啦   谢谢前辈!
“主动限制”  是自己瞎想出来  的   意思就是  一楼那个码一类的 实现它只能是数字    其他的输入不了
因为  原先用的是  在用户输入后  读取再判断 再提示
 楼主| 发表于 2012-5-9 22:46:52 | 显示全部楼层
回复 3# zldfsz


    今天来晚了 - -!
 楼主| 发表于 2012-5-9 22:49:10 | 显示全部楼层
回复 4# afan


   谢谢 A大    不过  看到  P侠 就先收起来了   等明天看(我一会儿的时间大概看不出个什么来)
 楼主| 发表于 2012-5-9 22:52:08 | 显示全部楼层
回复 6# lixiaolong


    谢谢  小龙   小弟也一直没找到   所以一直在用   判断
不过   A大  那里有   P侠  的练习。。。
 楼主| 发表于 2012-5-9 22:53:04 | 显示全部楼层
回复 5# 处男


谢谢关注
    误会误会,不是选择的。是限制输入的值  和类型
发表于 2012-5-9 23:16:16 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$form = GUICreate("", 200, 50, -1, -1)
$input = GUICtrlCreateInput("", 50, 10, 80, 15, 0x2000)
GUISetState()
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
        EndSwitch
        
WEnd

Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $ilParam)
        Select
                Case $input
                        Switch $ilParam
                                Case GUICtrlGetHandle($input)
                                        $r1 = GUICtrlRead($input)
                                        If $r1 > 100 Then
                                                MsgBox(0, "提醒", "超出范围")
                                        EndIf
                        EndSwitch
        EndSelect
;~         Return $GUI_RUNDEFMSG
EndFunc   ;==>MY_WM_COMMAND
 楼主| 发表于 2012-5-9 23:17:11 | 显示全部楼层
真是荣幸的一贴  竟然引来了那么多的大大
 楼主| 发表于 2012-5-16 12:06:16 | 显示全部楼层
回复 12# haijie1223


    谢发哥
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-19 03:48 , Processed in 0.081330 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表