C# TextBox 文本框限只允许输入数字 按回车后光标自动移位 并且限制最大长度
代码
private void BOX_KeyPress(object sender, KeyPressEventArgs e)
{
TextBox txtBox = sender as TextBox;
if (e.KeyChar >= '0' && e.KeyChar <= '9')
{
if (txtBox.TextLength <= 8)
{
e.Handled = false;//输入9位并且是1到9的数字bai或者是退格键 du
}
else if (txtBox.SelectionLength > 1)
{
e.Handled = false;//选择多个
}
else
{
e.Handled = true;
}
}
else if (e.KeyChar == '.'|| e.KeyChar == (char)Keys.Return) //Tab或回车键
{
e.Handled = true;
SendKeys.Send("{TAB}");
}
else if (e.KeyChar == '\b' || (int)e.KeyChar == 8)
e.Handled = false;//删除
else
e.Handled = true;
}
用于向 SendKeys 活动应用程序发送击键和击键组合。 此类无法实例化。 若要将击键发送到类并立即继续处理程序,请使用 Send 。 若要等待击键启动的任何进程,请使用 SendWait 。
每个键由一个或多个字符表示。 若要指定单个键盘字符,请使用字符本身。 例如,若要表示字母 A,请将字符串 "A" 传递给方法。 若要表示多个字符,请将每个附加字符追加到其前面的字符。 若要表示字母 A、B 和 C,请将参数指定为 "ABC"。
加号 (+) ,脱字号 (^) ,百分比符号 (% ) ,颚化 (~) ,括号 ( # A9 具有特殊意义 SendKeys 。 若要指定其中一个字符,请将其括在大括号内 ({}) 。 例如,若要指定加号,请使用 "{+}"。 若要指定大括号字符,请使用 "{ {} " 和 " {} }"。 方括号 ( [] ) 没有任何特殊含义 SendKeys ,但必须将它们括在大括号中。 在其他应用程序中,括号确实有一个特殊含义,当动态数据交换 (DDE) 发生时,这可能很重要。
注意
如果你的应用程序旨在用于全球各种键盘,使用 Send 可能会产生不可预知的结果,应当避免。
若要指定按下某个键时未显示的字符(如 ENTER 或 TAB)以及表示操作而不是字符的键,请使用下表中的代码。
密钥 | 代码 |
---|---|
Backspace | {BACKSPACE}、{BS.1770} 或 {BKSP} |
BREAK | 分 |
Caps Lock | {CAPSLOCK} |
DEL 或 DELETE | {DELETE} 或 {DEL} |
向下键 | 分解 |
End | {END} |
Enter | {ENTER} 或 ~ |
Esc | ECS |
HELP | {HELP} |
Home | {HOME} |
INS 或 INSERT | {INSERT} 或 {INS} |
向左键 | {LEFT} |
Num Lock | {NUMLOCK} |
Page Down | {PGDN} |
Page Up | PGUP |
打印屏幕 | {PRTSC} (保留以供将来使用) |
向右键 | {RIGHT} |
Scroll Lock | {SCROLLLOCK} |
Tab | {TAB} |
向上键 | UP |
F1 | 按 |
F2 | 组合键 |
F3 | 键 |
F4 | F4 |
F5 | F5 |
F6 | 组合键 |
F7 | F7 |
F8 | 组合键 |
F9 | 时更新 |
F10 | F10 |
F11 | F11 |
F12 | F12 |
F13 | F13 |
F14 | F14 |
F15 | F15 |
F16 | F16 |
小键盘加 | 把 |
小键盘减 | {SUBTRACT} |
小键盘乘 | {MULTIPLY} |
小键盘除 | 拆分 |
若要指定与 SHIFT、CTRL 和 ALT 键的任意组合组合的键,请在键代码前面加上一个或多个以下代码。
密钥 | 代码 |
---|---|
SHIFT | + |
Ctrl | ^ |
ALT | % |
若要指定在按多个其他键的同时按下 SHIFT、CTRL 和 ALT 的任意组合,请将这些键的代码括在括号中。 例如,若要指定在按 E 和 C 的同时按住 SHIFT,请使用 "+ (EC) "。 若要指定在按 E 的同时按住 SHIFT,请在不带 SHIFT 的情况下使用 C,并使用 "+ EC"。
若要指定重复键,请使用格式 {key number}。 必须在键和数字之间添加一个空格。 例如,{LEFT 42} 表示按左箭头键42次;{h 10} 表示按 H 10 次。