3

テキストボックス内の文字のみを許可する次のコードがあります。

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
  Char pressedKey = e.KeyChar;
  if (Char.IsLetter(pressedKey))
 {
// Allow input.
e.Handled = false
}
  else
e.Handled = true;
}
}

入力後に文字を削除できないため、バックスペースキーを機能させるにはどうすればよいですか?

4

2 に答える 2

3

Char.IsControl(...)次のように、を使用して、押されたキーが制御文字かどうかを確認できます。

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsLetter(e.KeyChar) && !Char.IsControl(e.KeyChar))
        e.Handled = true;
}

特にchars + Deleteのみをチェックする必要がある場合は、これを使用します。

private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!Char.IsLetter(e.KeyChar) && e.KeyChar != (char)Keys.Back)
        e.Handled = true;
}
于 2013-03-10T20:38:58.770 に答える
0

これは、VB.net を使用しているユーザー向けです。私が遭遇したことのない奇妙な変換があり、理解するのにしばらく時間がかかりました.

これは、数字、文字、バックスペース、およびスペースのみを許可します。

Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
    e.Handled = e.KeyChar <> ChrW(Keys.Back) And Not Char.IsLetter(e.KeyChar) And Not Char.IsDigit(e.KeyChar) And Not Char.IsSeparator(e.KeyChar)
End Sub
于 2015-07-23T20:31:52.390 に答える