- 締切済み
visual studio 2008 C# で、値を入れるテキストボッ
visual studio 2008 C# で、値を入れるテキストボックスを作り、そのテキストボックスに入力できる値を小数点2桁までとするにはどの様にすれば宜しいでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
個人的にはNumericUpdownが好きだな。それが使えなくとも、もし、Validatingイベントを使ってよければ、Double.Parseを使ってよければ、取得した値をString.Format()で小数点以下2桁のフォーマットで出力した文字列と完全一致するか比較するんだけどなあ…
- magicalpass
- ベストアンサー率58% (378/648)
ごめん、寝ぼけてるの…… #3 は撤回します
- magicalpass
- ベストアンサー率58% (378/648)
#1 の間違いその2なの × if ((str[j] == '-')&&(str.Length > 1)) continue; // マイナスなの ↓↓↓ ○ if ((str[j] == '-')&&(str.Length > 1)) {i++; continue;} // マイナスなの
- magicalpass
- ベストアンサー率58% (378/648)
#1 の間違いなの × for (j; j < str.Length; j++) { ↓↓↓ ○ for (j = 0; j < str.Length; j++) {
- magicalpass
- ベストアンサー率58% (378/648)
以下、TextChangedのイベントハンドラなの private void textHoge_TextChanged(イベントハンドラのパラメータ) { string text = textHoge.Text; // 入力値なの string[] elm = text.Split('.'); // 小数点で区切るの int i = 0 int j; foreach (string str in elm) { for (j; j < str.Length; j++) { if ((i == 0)&&(j == 0)) { if ((str[j] == '-')&&(str.Length > 1)) continue; // マイナスなの } if (!Char.IsDigit(str, j)) return; // 数字じゃないの } i++; } if (i != 2) return; // 実数じゃないの if (elm[1].Length < 3) return; // 小数点以下2桁以内なの int len = elm[0].Length + 1 + 2; textHoge.Text = text.Remove(len); // 小数点以下2桁にするの }