QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3161|回复: 5
收起左侧

[已解决] 如何限定textbox数组控件中都只能输入数字或小数点

[复制链接]
发表于 2010-8-28 12:26:10 | 显示全部楼层 |阅读模式 来自: 中国广东深圳

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
如题,我有几个textbox控件里面只能输入数据,单个的控件好做,数组的就做不好,谁有经验分享一下
发表于 2010-8-28 20:22:16 | 显示全部楼层 来自: 中国江苏苏州
一般是在 ”KeyPress“事件中判断,如下代码+ g# m7 ]& B* B/ |
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
2 {/ z5 Z4 J2 n/ F        {
9 r% f) ~3 u( t/ F5 {            if (("0123456789." + (char)8).IndexOf(e.KeyChar) > -1)
  X* G* `- r; U( i" n            {
" r  Z5 k6 G7 S6 S: ]                e.Handled = false;: i$ L$ N6 ?5 ?1 v2 k, Z
            }3 X$ q. K% f; ?& @9 J) a6 B! B' X
            else* J$ |% `2 k+ K& `, ]" [/ t
            {
0 I! t' O# G9 B3 {                e.Handled = true;
/ c* u5 v- ], z: ~            }
* g% a" @6 K! `2 T5 U% d( O        }
 楼主| 发表于 2010-8-28 22:36:30 | 显示全部楼层 来自: 中国广东深圳
楼上那个是用什么程序语言写的,我用的是VB6.0里面没有这样的代码& Q! f5 R& Z  v9 A$ {' d5 h( E
我是这样做的2 ]! R& d8 p8 e6 i5 t2 Q# A' c
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
3 [3 ]) G. V( Y; W! n2 v5 Y' z    If Not IsNumeric(Text1(0).Text) Then* k6 ]) m: V/ N/ r# X0 m$ ^
        MsgBox "输入数值", , "信息提示"
' Q: ]8 {$ P% G' w# g        Text1(0).Text = ""& I) E, o8 v" s. I0 l4 W6 |
    End If
& J! C6 E. R" ]) F; ~End Sub
! c# q! d; \- v5 ?1 m1 G  l$ i不过还是不能同时限定控件数组
发表于 2010-8-28 23:16:48 | 显示全部楼层 来自: 中国浙江杭州
在控件数组的循环中再加入判断不就行了吗?
 楼主| 发表于 2010-8-29 11:01:19 | 显示全部楼层 来自: 中国广东深圳
谢谢上面的两位& b$ q0 W) ~% e$ i/ G
以实现了我的想法,现把代码贴出来,大家看看有没什么BUG
3 Y$ x3 X  U9 S0 A* Q1 w+ L0 r8 [/ EPrivate Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)( H0 M2 H6 a) P: t
  Select Case KeyAscii) w* m0 T! }; k* S' M  y( v
        Case 46 To 57
9 s! q& Z2 Z& W  Y* t' ]           Exit Sub
! c  f& p! H& A  c        Case Else; Y5 K. g! ~# {9 L/ }; U  j
           KeyAscii = 0
4 p9 k0 ~6 W  P- c6 `8 |           MsgBox "请输入数值", , "提示信息"
) I# b+ x4 s8 U! ?* N" R1 ], B( |   End Select2 J1 N7 w& {" j
End Sub, U( Q7 R5 o( L( S
这样在控件数组里可以用了
 楼主| 发表于 2010-8-29 11:26:22 | 显示全部楼层 来自: 中国广东深圳
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)0 h( b0 n; v& n& n0 I- e* I
  Select Case KeyAscii
' @4 w* O. U% ?2 @+ @        Case 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
; k' Z/ L) j3 @  I* f! x9 v           Exit Sub
' z# M1 W8 L7 U' q- S- c        Case Else
0 w) l3 V) J, T% l* K# v           KeyAscii = 0
; j1 D- O& @( D7 r& ?           MsgBox "请输入数值", , "提示信息"
4 C" G+ m0 {' l/ p2 Z! |: W5 i9 S   End Select* x4 M; e+ C5 w% ~6 k; Y& Z" A
End Sub
( p0 P+ B2 b; X3 |4 u5 ^% }0 N  w; ~! p8 }
  t, u$ {5 X- w
这样写才是对的,上面47是/在键盘上.的旁边,还是容易按错。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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