準備

(なし)

デザイン

1. フォーム (Form1) にテキストボックス (textBox1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
  if ((e.KeyChar < 0x30) || (e.KeyChar > 0x39))
  {
    if (e.KeyChar != '\b')
    {
      e.Handled = true;
    }
  }
}

解説

判定は KeyPress イベント中の KeyChar で行います。数字のコードは 0x30 ~ 0x39 までですので、それ以外のキーコードの場合は、Handled プロパティを true にしてキャンセルします。但し、BackSpace だけは入力の必要がありますので、キャンセルの対象外にしています。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)