C#Textbook中如何限制输入只为数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#Textbook中如何限制输入只为数字相关的知识,希望对你有一定的参考价值。
在Textbook中只输入数字和“:”即输入时间格式!!如:12:00:00求解!!谢谢啊!
把要限制输入的文本框(textbox)的KeyPress的事件设置为下面的代码:private void pressKey_time(object sender, KeyPressEventArgs e)Int16 Asc = System.Convert.ToInt16(e.KeyChar);
if (Asc != 8 && Asc != 13)
String KeyChar = e.KeyChar.ToString();
String t_Str1, t_Str2, Reg;
TextBox T = (TextBox)sender;
t_Str1 = T.Text.Substring(0, T.SelectionStart);
t_Str2 = T.Text.Substring(T.SelectionStart + T.SelectionLength);
try
t_Str1 += KeyChar + t_Str2;
Reg = @"^\d1,2(:1\d0,2)0,2$";
if (!System.Text.RegularExpressions.Regex.IsMatch(t_Str1, Reg)) throw new Exception("Invalid!");
catch
e.Handled = true;
修改其中加黑部分的正则表达式可作各种不同的限制,以上只限制输入格式为88:88:88,如要加入输入值大小的限制请自行修改正则表式。 参考技术A public bool checktimetype(string str)
bool flag;
string[] s=new string[3];
char[] f = new char[2];
s[0] = str.Substring(0, 2);
f[0] = str[2];
s[1] = str.Substring(3, 2);
f[1] = str[5];
s[2] = str.Substring(6, 2);
if (f[0] == ':' && f[1] == ':')
if (int.Parse(s[0]) >= 0 && int.Parse(s[0]) <= 23 && int.Parse(s[1]) >= 0 && int.Parse(s[1]) <= 59 && int.Parse(s[2]) >= 0 && int.Parse(s[2]) <= 59)
flag = true;
else
flag = false;
else
flag = false;
return flag;
vb中,如何限制输入的文本框的内容只能是数字数或者字母?
比如我我限制某一文本框里面输入的内容只能是数(可以是小数),请问如何实现呢?如果限制只能输入整数,请问如何实现呢?如果限制只能输入字母请问如何实现呢?
参考技术A Private Sub Text1_Change()'有点懒If IsNumeric(Text1) = False Then
MsgBox "不是数字,请输入数字", 0, "提示"
Text1.SetFocus
Text1.SelStart = Len(Text1)
SendKeys "BACKSPACE"
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) Like "[a-zA-Z]" = False Then
MsgBox "不是字母,请输入字母", 0, "提示"
KeyAscii = 0
End If
End Sub
Private Sub Text3_Change()
If IsNumeric(Text3) = False Then
MsgBox "不是数字,请输入数字", 0, "提示"
Text3.SetFocus
Text3.SelStart = Len(Text3)
SendKeys "BACKSPACE"
ElseIf Val(Text3) - CLng(Text3) <> 0 Then'有点懒
MsgBox "不是整数,请输入整数", 0, "提示"
End If
End Sub追问
sendkeysbackspace 是什么意思呢?
追答退格(删除。看你键盘上的名称,应该是一样)。主要针对键盘操作。不然就如推荐答案,只是简单的理论操作。否则会有漏洞或叫不完善。
本回答被提问者采纳 参考技术B Dim 输入限制 As String = "0123456789.abcdefghijklmnopqrstuvwxyz"Dim 输入字符 As Char = e.KeyChar
If InStr(输入限制, 输入字符) <> 0 Or e.KeyChar = ChrW(8) Then
If 输入字符 = "." And InStr(TextBox1.Text, 输入字符) <> 0 Then
e.Handled = True
Else
e.Handled = False
End If
End If
这段代码写在文本框的 KeyPress 事件里,.NET 的,6.0 好像类似,但没有 e.Handled = True 或者 False,这里为 True 时改成直接退出过程“Exit Sub”,False 不写了好像行,没有 6.0 没法给你试试 参考技术C 这个需要在文本框的keypress事件中对输入的keyascii进行检查, 如果不满足要求则输入无效,例如只能输入字母程式如下:
private sub Text1_keypress(KeyAscii as Integer)
select case keyascii
case 65 to 90,97 to 122 'A-Z, a-z
case else
Keyascii=0
end select
end sub 参考技术D 只能输入数字
Private Sub Form_Resize()
If Not IsNumeric(Text1.Text) Then
'如果输入的不是数字,删除非数字
Text1.Text = Val(Text1.Text)
Text1.SelStart = Len(Text1.Text)
End If
End Sub
Private Sub Text1_Change()
If Not IsNumeric(Text1.Text) Then
'如果输入的不是数字,删除非数字
Text1.Text = Val(Text1.Text)
Text1.SelStart = Len(Text1.Text)
End If
End Sub
只能输入整数
Private Sub Form_Resize()
tmp = ""
For n = 1 To Len(Text1.Text)
If Asc(Mid(Text1.Text, n, 1)) > 47 And Asc(Mid(Text1.Text, n, 1)) < 58 Then
tmp = tmp & Mid(Text1.Text, n, 1)
End If
Next
Text1.Text = Val(tmp)
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub Text1_Change()
tmp = ""
For n = 1 To Len(Text1.Text)
If Asc(Mid(Text1.Text, n, 1)) > 47 And Asc(Mid(Text1.Text, n, 1)) < 58 Then
tmp = tmp & Mid(Text1.Text, n, 1)
End If
Next
Text1.Text = Val(tmp)
Text1.SelStart = Len(Text1.Text)
End Sub
只输入字母
Private Sub Text1_Change()
'65 97 90 122
tmp = ""
For n = 1 To Len(Text1.Text)
If (Asc(Mid(Text1.Text, n, 1)) > 64 And Asc(Mid(Text1.Text, n, 1)) < 91) Or (Asc(Mid(Text1.Text, n, 1)) > 96 And Asc(Mid(Text1.Text, n, 1)) < 123) Then
tmp = tmp & Mid(Text1.Text, n, 1)
End If
Next
Text1.Text = tmp
Text1.SelStart = Len(Text1.Text)
End Sub 第5个回答 2013-02-08 '*********************************************************************************************
'名称 Sub_CheckNum
'作者 Morn Woo
'功能 检查键入的是否是数字 ,不是则释放按键
'参数 iPressKey(引用传递):按键的ASCII码;如果要处理浮点数的输入,则要把已经输入的部分作为参数sstr 传入
'应用方法 在keypress事件中调用,用事件的KeyAscii参数作为这里的参数iPressKey
'*********************************************************************************************
Sub Sub_CheckNum(ByRef iPressKey As Integer, Optional sStr = "")
sStr = Trim(sStr)
If Len(sStr) = 0 Then
'1处理自然数输入的情况
Select Case iPressKey
Case 48 To 57, 8, 13 '8是backspace,131enter
'处理数字字符问题
Case Else:: iPressKey = 0
End Select
Else
'2处理浮点数输入的情况
Select Case iPressKey
Case 45 '处理负号字符问题
If InStr(sStr, "-") > 0 Then: iPressKey = 0
Case 48 To 57, 8, 13 '处理数字字符问题
Case 44: If sStr = "" Then iPressKey = 0 '处理逗号字符问题
Case 46 '处理小数点字符问题
If InStr(sStr, ".") > 0 Then: iPressKey = 0
Case Else:: iPressKey = 0
End Select
End If
End Sub
以上是关于C#Textbook中如何限制输入只为数字的主要内容,如果未能解决你的问题,请参考以下文章
c#中如何把textbook中的数字读出并赋值给自己定义的变量
在C#里.怎么设置我的textbook1只能输入数字或者英文??请高手解决!!