c#编程 只能输入数字 怎么去除鼠标单击事件
发布网友
发布时间:2022-05-19 02:16
我来回答
共4个回答
热心网友
时间:2024-03-03 04:53
回车对应的e.KeyChar 为13.所以满足了 e.KeyChar > '9' || e.KeyChar < '0'这个条件,肯定会进入下面的if中的。8对应的是退格键。
if (e.KeyChar > '9' || e.KeyChar < '0' && (e.KeyChar != 8)&& (e.KeyChar != 13)) //如果输入的内容不是数字,也不是backspace=8 也不是回车键
{
e.Handled = true;//禁止输入,你可以换成你的弹出提示框
MessageBox.Show("只能输入数字", "提示");
}
ASC码:
a-z:65-90
ESC键 VK_ESCAPE (27)
回车键: VK_RETURN (13)
TAB键: VK_TAB (9)
Caps Lock键: VK_CAPITAL (20)
Shift键: VK_SHIFT ($10/16)
Ctrl键: VK_CONTROL (17)
Alt键: VK_MENU (18)
空格键: VK_SPACE ($20/32)
退格键: VK_BACK (8)
左徽标键: VK_LWIN (91)
右徽标键: VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键: VK_Insert (45)
Home键: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End键: VK_END (35)
Delete键: VK_Delete (46)
方向键(←): VK_LEFT (37)
方向键(↑): VK_UP (38)
方向键(→): VK_RIGHT (39)
方向键(↓): VK_DOWN (40)
F1键: VK_F1 (112)
F2键: VK_F2 (113)
F3键: VK_F3 (114)
F4键: VK_F4 (115)
F5键: VK_F5 (116)
F6键: VK_F6 (117)
F7键: VK_F7 (118)
F8键: VK_F8 (119)
F9键: VK_F9 (120)
F10键: VK_F10 (121)
F11键: VK_F11 (122)
F12键: VK_F12 (123)
Num Lock键: VK_NUMLOCK (144)
小键盘0: VK_NUMPAD0 (96)
小键盘1: VK_NUMPAD0 (97)
小键盘2: VK_NUMPAD0 (98)
小键盘3: VK_NUMPAD0 (99)
小键盘4: VK_NUMPAD0 (100)
小键盘5: VK_NUMPAD0 (101)
小键盘6: VK_NUMPAD0 (102)
小键盘7: VK_NUMPAD0 (103)
小键盘8: VK_NUMPAD0 (104)
小键盘9: VK_NUMPAD0 (105)
小键盘.: VK_DECIMAL (110)
小键盘*: VK_MULTIPLY (106)
小键盘+: VK_MULTIPLY (107)
小键盘-: VK_SUBTRACT (109)
小键盘/: VK_DIVIDE (111)
Pause Break键: VK_PAUSE (19)Scroll Lock键: VK_SCROLL (145)
热心网友
时间:2024-03-03 04:53
不建议使用这样的方式,因为这样操作无法阻止用户的复制和粘贴操作,建议:
1、用户点击确定时进行判断
2、焦点离开文本框时进行判断
3、使用验证控件
4、改用 TextChanged 事件
利用正则表达式 Regex.IsMatch(inputText, @"^\d{1,N}$"); // N为最多可以输入的字符数
热心网友
时间:2024-03-03 04:54
你现在的方法无法解决别人粘贴进去非数字的文本的问题。
为什么不用NumericUpDown之类的可以输入数字的控件呢
那你试试看处理 TextChanged事件好了,每次TextChanged 事件时检测Textbox中的Text是否包括非数字字符,如果包括非数字的话,则使用上一次的值覆盖回去,并给出提示。
热心网友
时间:2024-03-03 04:54
e.keychar==13回车?试试