キー イベントは次の順序で発生します
KeyPress イベントは、文字以外のキーによっては発生しませんが、
文字以外のキーは KeyDown イベントと KeyUp イベントを発生させます。
※ 例えば、Delete は KeyPress では通知されません
以下、基本的なキーの受け方
e.Handled = True
を KeyPress イベントで設定すると、入力した値がフィールドに表示されなくなります
以下は、イベントの順序を利用して、KeyDown で表示しない文字を決定しています
フォームの KeyPreview プロパティを True にすると、各フィールドへ通知
する前にフォームにイベントが送られるようになるので、一括でコントロール
が可能になります
以下はフォーム上のすべての入力フィールドで A が入力できなくなります
ユーザーコントロールを作成しての実装例
以下は DataType プロパティの定義
文字列の場合の入力制限プロパティ