この単純な問題の解決策を探すのに 90 分を費やした後、恥ずかしながら質問を投稿する必要があります。
ユーザーがテキストを入力する WPF プロジェクトに取り組んでいます。ユーザーが入力している間に入力を確認し、ツール ヒントを表示し、理想的には許可されていない文字をブロックしたいと考えています。基本的にはこのスレッドです:
ユーザーが WinForms テキストボックスに入力した文字を検証するにはどうすればよいですか? またはこれ
ユーザー入力を検証するベスト プラクティスの方法はありますか?
private void NameTextbox_KeyDown(object sender, KeyEventArgs e)
{
e.???
}
デザイナーで KeyDown-Property フィールドをダブルクリックして、このコード ビハインドを作成しました (ここで失敗した場合は、これについて言及してください)。
e.SupressKeyPress プロパティにアクセスできません。なんで?VS が提供するプロパティの時点で、 eは間違ったタイプであるか、ここで間違ったコンテキストにあると思います。
編集1
private void NameTextbox_KeyDown(object sender, KeyEventArgs e)
{
var strKey = new KeyConverter().ConvertToString(e.Key);
if (!strKey.All(Char.IsLetter))
{
MessageBox.Show("Wrong input");
e.Handled = true;
}
}
@rokkerboci のおかげで、そのような機能を構築することができました。しかし、それは複雑すぎると思います。したがって、改善はまだ歓迎されています:)
メッセージ ボックスの作成時の新しいエラーアプリケーションは、例外がスローされずにハングします。