如何限定只能输入数字?且数字包括小数
#include <GUIConstantsEx.au3>#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 320, 229, 193, 115)
$Input1 = GUICtrlCreateInput("", 80, 56, 169, 21)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
我的问题是:怎样限定只能输入数字,数字包括小数,我限定了以后,$Input1 =GUICtrlCreateInput("", 80, 56, 169, 21,0x2000)
但是却不能输入小数。
[ 本帖最后由 silvay22 于 2009-1-14 23:02 编辑 ] 嗯 确实不能输入小数点那就用if来判断把 可以的,,,.............. 我不用AU3来写GUI,所以对GUI控件不熟悉。
一般的做法是,在INPUT的KEYDOWN事件中,用正则表达式,对输入的字判断。
只能为\d或\. 谢谢akmm88的提醒,用正则表达式即可呵呵 #include <GUIConstantsEx.au3>
$GUI = GUICreate("", 320, 120)
$Input = GUICtrlCreateInput("", 10, 35, 300, 20)
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
$t = GUICtrlRead($Input)
If $t <> "" Then
If StringRight($t, 1) <> "." And StringIsDigit(StringRight($t, 1)) = 0 Then GUICtrlSetData($Input, StringTrimRight($t, 1))
EndIf
WEnd laojikelly 发表于 2019-9-13 13:00
能用,但是有个问题,就是这样限制之后,虽然其他字符未在输入框中显示,但是已经改变了输入框的状态,和系统的$ES_NUMBER不一样,$ES_NUMBER是不让输入,且不会改变输入框的状态。
页:
[1]