我需要能够锁定文本框中的有效字符,目前我有一个正则表达式,我可以根据它检查每个字符,例如


  [A-Za-z]


只能锁定Alpha字符。

protected override void OnKeyPress(KeyPressEventArgs e)
{
  if (e.KeyChar == (char)Keys.Back)
  {
    base.OnKeyPress(e);
    return;
  }
  if (String.IsNullOrEmpty(this._ValidCharExpression))
  {
    base.OnKeyPress(e);
  }
  else
  {
    bool isValidChar = Regex.Match(e.KeyChar.ToString(),this._ValidCharExpression).Success;
    if (isValidChar)
    {
      base.OnKeyPress(e);
    }
    else
    {
      e.Handled = true;
    }
  }
}


我已经将正则表达式代码放在OnKeyPress代码中,但是我希望允许所有特殊键(例如Ctrl-V,Ctrl-C和Backspace)被允许。

如您所见,我正在处理退格键。但是,例如Ctrl-V不能看到V键,因为它只对ctrl键运行一次,但是看不到任何修饰键。

处理这种情况的最佳方法是什么?

最佳答案

您可以使用OnKeyPress / OnKeyUp / OkKeyDown事件之一,然后使用Char.IsLetter方法检查输入的键是否为字母。

10-06 12:17