.NET Frameworkで数字のみの記入が可能なTextBoxを作成

 Win32APIプログラミングでならプロパティ指定できるのに、.NETプログラミングではできない数字入力専用のテキストボックス。プログラミングサイトではキー入力のイベントを取得して、逐一数字かどうかを確認するという回りくどい処理を行っていますが、.NET Framework 2.0なら灯台もと暗しともいえる手法で簡単にできてしまいます。

 コントロールに使うのはTextBoxではなく、MaskedTextBoxです。MaskedTextBox.Maskプロパティには必要な桁数分「0」を指定(3桁なら「000」)し、RightToLeftプロパティにはYes、PromptCharプロパティには半角スペースを1文字入れておけば、数値入力テキストボックスの完成です。

 数値の取得は
int i = Int32.Parse(maskedBox.Text.Replace(" ", ""));
 と、いう感じでどうぞ(わざわざ空白を除去するのは「1_2」のような天の邪鬼な文字列を記入する人対策)。
2006/04/02