C# WinForm的TextBox中只允许用户输入数字、英文字母,如何允许Crtl+V。

 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)

 

转载于:https://www.cnblogs.com/bjxingch/articles/7200476.html

  • 0
    点赞
  • 1
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值