Thursday, October 15, 2015

C Sharp Memo - How to Allow only Numerical Input in Textbox で数値しか入力できないようにするには?

  nanoblog(ナノブログ)にズバリ回答がありましたので、メモっておきます。


private void textBox1_KeyPress( object sender, KeyPressEventArgs e ) {
    // 制御文字は入力可
    if ( char.IsControl(e.KeyChar) ) {
        e.Handled = false;
        return;
    }

    // 数字(0-9)は入力可
    if ( char.IsDigit(e.KeyChar)  ) {
        e.Handled = false;
        return;
    }

    // 小数点は1つだけ入力可
    if ( e.KeyChar == '.') {
        TextBox target = sender as TextBox;
        if ( target.Text.IndexOf('.') < 0 ) {
            // 複数のピリオド入力はNG
            e.Handled = false;
            return;
        }
    }

    // 上記以外は入力不可
    e.Handled = true;
}

No comments:

Post a Comment