visual studio 2008 C# で、値を入れるテキストボッ

回答受付中の質問

visual studio 2008 C# で、値を入れるテキストボッ

visual studio 2008 C# で、値を入れるテキストボックスを作り、そのテキストボックスに入力できる値を小数点2桁までとするにはどの様にすれば宜しいでしょうか?

投稿日時 - 2010-09-10 00:31:22

QNo.6171220

困ってます

2人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(5件中 1~5件目)

個人的にはNumericUpdownが好きだな。それが使えなくとも、もし、Validatingイベントを使ってよければ、Double.Parseを使ってよければ、取得した値をString.Format()で小数点以下2桁のフォーマットで出力した文字列と完全一致するか比較するんだけどなあ…

投稿日時 - 2010-09-16 05:37:38

ANo.4

ごめん、寝ぼけてるの……

 #3 は撤回します

投稿日時 - 2010-09-10 06:36:05

ANo.3

#1 の間違いその2なの

× if ((str[j] == '-')&&(str.Length > 1)) continue; // マイナスなの
    ↓↓↓
○ if ((str[j] == '-')&&(str.Length > 1)) {i++; continue;} // マイナスなの

投稿日時 - 2010-09-10 06:30:38

ANo.2

#1 の間違いなの

× for (j; j < str.Length; j++) {
    ↓↓↓
○ for (j = 0; j < str.Length; j++) {

投稿日時 - 2010-09-10 06:16:41

ANo.1

以下、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桁にするの
}

投稿日時 - 2010-09-10 06:09:10

あわせてチェックしたい
  • 「Visual Studio 2008(C#)とSubversion」 ...
  • Visual Studio2008 Express Edition c ...
  • Visual Studio Pro 2008 ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら