このコードでは、テンキーパッドから数値を入力できません。
private void textBox1_KeyDown( object sender, KeyEventArgs e ) {
e.SuppressKeyPress = !( (e.KeyValue >= 48 && e.KeyValue <= 57) )
}
一般的な数値 (通常のキーと数字キーの両方) を含めるにはどうすればよいですか?
このコードでは、テンキーパッドから数値を入力できません。
private void textBox1_KeyDown( object sender, KeyEventArgs e ) {
e.SuppressKeyPress = !( (e.KeyValue >= 48 && e.KeyValue <= 57) )
}
一般的な数値 (通常のキーと数字キーの両方) を含めるにはどうすればよいですか?
結局のところ、それらが表す文字は同じですが、それらは異なるキーだからです。
より良い結果を得るには、Keys
列挙型とKeyCode
プロパティを使用できます。
e.SuppressKeyPress = !((e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) || (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9))
またはKeyPress
、イベント引数に文字コードがあるため、イベントを使用します。
KeyPress イベント ハンドラー内で次のことができます。
e.Handled = !Char.IsDigit(e.KeyChar)
それらは同じキーではないため、同じではありません。Keyvalue は、キーが表す値ではなく、キーボードで押した特定のキーを抽象化したものです。
つまり、単純な OR を使用して、テンキー キーまたはその他のキーのいずれかが押されているかどうかを簡単に確認できます。