sender, EventArgs e), private                 { || e.KeyChar == '.'). 以前,フォームに配置するテキストボックスを数字入力専用にするケースを紹介しましたが,これだと正の整数しか入力できないので,小数点を含む正の自然数を入力できるように改変します。, 少数フォーマット以外の数字以外を入力させないようにする、テキストボックスのイベントプロシージャです。 文字列操作関数を使用して、.             if (char.IsNumber(e.KeyChar) || e.KeyChar == '.') //-->.                 }                     else //. + UpDat.ToString(); //五入 void TextBox1_KeyPress(object                 }                     {                 Test2 = Test.Split('. (どっと)があるかを検査します。Contains関数を使用する。             }             if (Test.Contains(".")) 第一分岐 決めた小数点以下の桁数かどうかを検査します。数値比較で検査 MSDNフォーラムにご投稿くださいましてありがとうございます。             string Test = textBox1.Text;             分割した左辺と、.                 if (keta <= SetKeta) }         }, と言う関数になります。マウスでテキストボックスをダブルクリックしても反応がない場合があります。この場合は、プロパティーウィンドの稲妻マークのボタンをクリックして下さい。表示されたイベント処理の中から、TextChangedと書いてある項目を探して、またもや、同じく、マウスでダブルクリックして下さい。ここでダブルクリックすれば、たいていは、TextChanged関数のスケルトンが自動で書き込まれます。, private void textBox1_TextChanged(object sender, EventArgs e) ユーザーフォーム入門として基礎から解説します。数値専用のテキストボックスの作成です。数字以外は入力出来ないテキストボックスを作成します。数値専用のテキストボックスの追加 以下のように金額のテキストボックスを追加します。                         UpDat = int.Parse(Test3);             //小数点第一位までの処理                     {             { 少なくとも私には、上で書かれたような入力条件がよくわかりませんでした。, textBox1をダブルクリックすると、以下のコードが自動生成されます。 第二分岐                     /* 四捨五入の場合は、上の二行は、コメントアウトして、こちらをコメント指定の(//)を消してアクティブにして下さい。変数二個も、アクティブにして下さい。 【サンプル2】 テキストボックスのキープレスイベントのプロシージャです。Chr(KeyAscii) で、入力した文字コードに対応する値を返しています。 返ってきた値が、0から9の間だったら、有効、それ以外だったら無効にします。 .                     if (UpDat >= 5) //5以上の場合 四捨五入処理 Test変数の中の文字列を検査します。 google_ad_client = "pub-8092962482169671"; (ドット)で分割 この方が楽なので処理を変更しました。 {                         Test3 = Test2[1].Substring(SetKeta - 1, 1);    ↓             }                         UpDat++;                 else if(keta > SetKeta) google_ad_width = 728;         {                 ; //何もしない google_ad_slot = "0887539173"; + Test3.ToString(); //切り捨ての場合 (ドツト)と、切り捨てた数値文字を連結して文字列を作成してTextBox1に代入する。                     } sender, KeyPressEventArgs e), if (char.IsNumber(e.KeyChar) { void Test_Load(object (どっと)がないならば、 document.getElementById("thisYear").innerHTML = thisYear. 第一分岐終了 フォームの編集画面から,少数だけ入力させたいテキストボックス(以下,TextBox1として説明します)をダブルクリックしてVBEに移ると,デフォルトではTextBox1_Changeのプロシージャを作成する画面になると思いますが,プロシージャを切り替えてKeyPress(キーが押された時)を選択します。そうするとPrivate Sub ~ End Subの部分が自動的に作成されます。詳しくは「テキストボックスに数字のみ入力させる。」の説明を参考にしてください。, カッコ内のByVal KeyAscii As MSForms.ReturnIntegerの部分は意味がわからなくても変更してはいけません。テキストボックスにカーソルがある状態で何らかのキーが押された時にKeyPressというイベントプロシージャがKeyAsciiという引数とともに引き起こされます。KeyAsciiはその文字の通り,押されたキーのアスキー番号です。, KeyAsciiによる文字が0~9かピリオド以外の場合,KeyAsciiを0にします。KeyAsciiが0ということは,何もキーが押されなかったことになります。, 小数点は当然1つまでですので,ピリオドが押され,かつ,すでにピリオドが含まれる場合もKeyAsciiを0にします。, このプロシージャを抜けた後,KeyAsciiが0でなかったら,テキストボックスにその文字が追加入力されるようになります。, 上記のコードは正の自然数の例ですが,負の数も入れたい場合も応用出来ると思います。(最初の1文字目でない場合にマイナスが押されるとKeyAsciiを0にする。).                         Test3 = Test2[1].Substring(0, SetKeta);                     UpDat = int.Parse(Test2[1].Substring(SetKeta, 1)); 決めた桁数以下の場合は、何もしない             //int SetKeta = 1; //小数点以下の指定の桁数 1の場合                         textBox1.Text = Test2[0] + "." 以上でできます。.                 if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text,"^\\d*\\.\\d{1}$")) e.Handled = true; ・Changeイベントで「5文字入力された」ことを感知 マウス操作だけでペーストする(右クリックでローカルなメニューを出してペーストを選ぶ)と、キーボード系のイベントが発生しません。ですので、キーボード系のイベントで操作可否の判定と反応をプログラムしたところで、マウス操作ではどんな文字列でもペースト出来てしまいます。 .ドット以下の文字列を全て取得します。. となります。, これで、テキストボックスには4文字しか入力できなくなりました。だけど、実はもっと簡単な方法があるんです。TextBoxのMaxLengthプロパティは、そのテキストボックスに入力できる最大文字数を設定できます。まさに、今回のテーマにぴったりのプロパティです。, このように設定しておけば、テキストボックスには4文字しか入力できなくなります。文字数の制限をしないときは、MaxLengthプロパティに0を指定します。, なお、本コンテンツで紹介したLeft関数や、MaxLegthプロパティは、いずれも全角と半角を区別しません。テキストボックス内の全角と半角を区別する方法は、下記のページを参考にしてください。,