HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


C# 2005の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > C# 2005 Tips > コントロール > TextBox Tips メニュー

02.数値のみ入力可能にする

UPDATE:2006/11/01 

<< 前のTips  次のTips >>

 

 TextBoxに数値しか入力させたくない場合には、KeyPressイベントで入力されたキーを判断します。入力されたキーが数値以外の時はe.Handled = trueとして入力されたキーを無効にします。
 サンプル1では、数値のみを入力可能にしています。これだとバックスぺースキーも無効であり現実的ではありません。
 サンプル2では、バックスペースとドットの入力も可能です。しかしドットは何個でも入力できるので、小数の入力を受け付けるようにするにはもう少し手を加える必要があります。(各自で修正してみてください)

 どちらのサンプルもクリップボードからペーストされると数値以外の値も入力されてしまうことに注意してください。

 
サンプル1
'サンプル1(数値のみ入力可能にする)
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar < '0' || e.KeyChar > '9')
        e.Handled = true;
}


 
サンプル2
'サンプル2(数値とバックスペースとドッドを入力可能にする)
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != '\b' && e.KeyChar != '.')
        e.Handled = true;
}