テキストボックス内の有効な文字をロックダウンできるようにする必要があります。現在、次のような各文字をチェックできる正規表現があります。
[あざーず]
アルファ文字のみにロックダウンされます。
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 は、ctrl キーに対して 1 回実行されますが、修飾キーが表示されないため、V キーを表示できません。
この状況を処理する最善の方法は何ですか?