1 #region 验证用户输入的是否为英文,数字 2 //判断用户是否使用了Crtl+V 3 private bool isCrtlV = false; 4 /// <summary> 5 /// 判断用户输入的是否为英文字符、数字 6 /// </summary> 7 /// <param name="sender"></param> 8 /// <param name="e"></param> 9 private void txtKeyName_KeyPress(object sender, KeyPressEventArgs e) 10 { 11 if (!Char.IsNumber(e.KeyChar) && !Char.IsUpper(e.KeyChar) && !Char.IsLower(e.KeyChar) && e.KeyChar != (Char)8 && !isCrtlV) 12 { 13 e.Handled = true;//输入的是数字 14 } 15 else 16 { 17 isCrtlV = false; 18 } 19 } 20 #endregion 21 22 #region 判断用户输入的是否为组合按键 23 /// <summary> 24 /// 判断用户输入的是否为组合按键txtKeyName_KeyPress事件中捕获不到组合按键 25 /// </summary> 26 /// <param name="sender"></param> 27 /// <param name="e"></param> 28 private void txtKeyName_KeyDown(object sender, KeyEventArgs e) 29 { 30 if (e.KeyData == (Keys.Control | Keys.V)) 31 { 32 isCrtlV = true; 33 } 34 } 35 #endregion
下面是一下按键的参考:
e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete // back space , delete
e.KeyCode == Keys.Left || e.KeyCode == Keys.Right // left , right
(e.Control && e.KeyCode == Keys.C) // copy
(e.Control && e.KeyCode == Keys.V) // paste
(e.Control && e.KeyCode == Keys.X) // cut
(e.Shift && e.KeyCode == Keys.Home)
(e.Shift && e.KeyCode == Keys.End)