テキストボックスに数値しか入力させないようにし、さらにそれを3桁のコンマ区切りで表示しています。
以下の文でやっています。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < '0' || '9' < e.KeyChar) && e.KeyChar != '\b' )
{
e.Handled = true;
}
}
private void textBox1_Leave(object sender, EventArgs e)
{
this.textBox1.Text = string.Format("{0:#,0}", ulong.Parse(this.textBox1.Text));
}
上の方では数値のみの入力制限、下の方では桁区切りを実行しています。
これでうまくいくのですが、エラーが一つ出ます。
一度数字を入力し、リーブしたらもう桁区切りがなされます。
しかしそれを書き換える、例えば全部消してから書き換えるのでなく、桁数が一文字多かったので消そうというときに、一つ消してリーブすると、コンマが入っているためにエラーになります。
これを防ぐにはどうすればいいでしょうか?
また、ただそれだけでは、桁区切りがおかしくなるはずです。
できれば書き換えた後に、新たに桁区切りがなされるようにしたいのですがやはり難しいでしょうか?
No.3ベストアンサー
- 回答日時:
Parseメソッドの NumberStyles付に変更すればいいですよ
this.textBox1.Text = string.Format("{0,#0}",ulong.Parse(this.textBox1.Text, System.Globalization.NumberStyle.Number));
といった具合です
Windowsの桁区切りが『,』であれば 上記でうまくいくと思います
No.4
- 回答日時:
#3です
私の回答のFormatの書式を間違えてますね …
正しくは質問の通り "{0:#,0}" です
空欄の件ですが、if文で分ければ簡単に解決できました。
private void textBox1_Leave(object sender, EventArgs e)
{
if(this.textBox1=="";)
{
}
else
{
this.textBox1.Text = string.Format("{0:#,0}", ulong.Parse(this.textBox1.Text));
}
}
こういった感じで。
解決できました。本当にありがとうございました。
No.2
- 回答日時:
Replaceメソッド辺りで取り除く…ってところでしょうかね?
http://msdn.microsoft.com/ja-jp/library/czx8s9ts …
Removeメソッドの方がソレっぽいのですが、こちらはインデックスとか使いますし。
# まぁ、演算すりゃいいだけですが。
ところで…this.textBox1.Textが空になった時のコトも考慮しておいた方がいいでしょうね。
# 上記のReplaceメソッドで取り除いた後の長さも…かな。"1,000"かせ取り除いても空にはなりませんが。
ご回答ありがとうございました。やり方は、No.3さんの方法でうまくいきました。ただこの場合も空欄の場合の処理を考えなければなりません。
考えてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Excel(エクセル) Excelのtextboxへの入力で小数点以下に0が続く場合でも正しく表示したい 3 2022/04/11 13:53
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
visualstudio C# テキストボックスの数値を取得して計算する方法を教えてください。
Microsoft ASP
-
c#でTextBoxの入力制限
C言語・C++・C#
-
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
-
4
VB2010 TextBoxの数字の表示 千単位でカンマ
Visual Basic(VBA)
-
5
ラジオボタンの初期指定
Visual Basic(VBA)
-
6
DataGridViewのチェックボックスのON、OFFの判定方法
C言語・C++・C#
-
7
コンボボックスでドロップダウンリストにしたときに・・・・
Visual Basic(VBA)
-
8
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
9
変数名の付け方
Java
-
10
C#で電卓のプログラムを組んでいるのですが
C言語・C++・C#
-
11
ラジオボタンにタブインデックスを設定したい
JavaScript
-
12
textBoxに数値を入力すると円とカンマが自動的につくようにするには?
C言語・C++・C#
-
13
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
14
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
15
関数内の変数に<summary>コメントを付けたい
C言語・C++・C#
-
16
C# ReadOnlyのTextBoxで
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
CSVの定義
-
PHP カンマをエスケープしたい...
-
EXCELからCSVにすると余計なカ...
-
JPY ¥1,500.00は日本円でお幾ら?
-
Excelについて質問です。 セル...
-
[VBA][Excel]クリップボードか...
-
WORDで改ページすると時々グレ...
-
VBAでtxtファイルを読み込む際...
-
データにカンマが入ったCSVデー...
-
カンマ区切り
-
マクロを使ってフォルダー内に...
-
EXCELの文字が指数になる
-
カンマ区切りの数字をCSVフ...
-
VBScript 日付の比較について
-
エクセルの質問
-
メッセージボックスの数字をカ...
-
WSHでエクセルのあるシートをテ...
-
VB2005のTextBoxでカン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
カンマ区切りの数字をCSVフ...
-
マクロを使ってフォルダー内に...
-
CSVの定義
-
WORDで改ページすると時々グレ...
-
Excelについて質問です。 セル...
-
カンマ区切り
-
データにカンマが入ったCSVデー...
-
C#で、テキストボックスの入力...
-
何故、日本は未だに数字を3桁...
-
[VBA][Excel]クリップボードか...
-
VBAでtxtファイルを読み込む際...
-
パス区切りの文字について
-
ひとつの命令を複数行に記述
-
PHP カンマをエスケープしたい...
-
3桁ごと?4桁ごと?コンマの...
-
CSVファイル中の不規則な数のス...
-
エクセル セルの書式設定 ユ...
おすすめ情報