WPF:数値しか受け付けないテキストボックスの作り方
やりたいこと
wpfで数値のみしか受け付けないテキストボックスを作りたい
答えへのリンク
qiita.com
これを読めばOK。
ほぼコピペだが要点を記載
PreviewTextInputで入力前に文字列を取得し、RegexクラスのIsMatch静的メソッドで数値かどうかを判定、数値以外ならば入力をキャンセル(e.Handlerにfalseを代入)。数値しか受け付けないテキストボックスは一つのユーザーコントロールに複数配置することが多いので、ここではsenderから文字列を取ることにして、複数のテキストボックスのPreviewTextInputにこのイベントを登録している。
using System.Text.RegularExpressions; Regex regex = new Regex("[^0-9.]+"); private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e) { var text = ((TextBox)sender).Text + e.Text; e.Handled = regex.IsMatch(text); }