プロが教える店舗&オフィスのセキュリティ対策術

タイトルのとおりですが、TextBoxの数字の表示は千単位でカンマしたいです
例「1,000,000」
よろしくお願いします

A 回答 (2件)

答えを表示するためのテキストボックス、値を入力するためのテキストボックスなどがあり、入力操作中も随時書式を適用したいってことでしょうか?


たしかこれは標準状態のテキストボックスでは無理だったと思います。
技術のある方が自作して公開してくださっているカスタム コントロールを導入するか、有料で販売されているコントロールを購入するか、自分で作成するかのどれかでしょうね。

これを自力でやろうとすると非常に面倒だということがすぐにわかります。
・ 大前提
Type-A 入力中もカンマが数字の間に割って入る。
Type-B 入力中は数字だけになり、入力が終わるとカンマが割って入る。
どちらなのかによって中身が違ってくる。

・ Type-A の場合
入力の最中にもカンマの位置が次々に変化したり現れたり消えたりする処理が必要。
一文字変化するたびにこれらを処理し、且つ入力中のカーソルの位置も調整する必要がある。

・ Type-B の場合
テキストボックスにカーソルが入った時にカンマを抜き取り、カーソルが出て行ったときに整形する。
ユーザーが入力した値が数値として評価できない場合はテキストボックスの検証機能を使ってユーザーに注意を促すようにすれば、結果的にテキストボックスの値は数値として評価できる値になるので、テキストボックスにカーソルが入ってきたときの処理が楽になる。(「空白または数値である」という前提で行ける)

・ その他
入力できる文字種を制限するのか。
+ や - は入力可能なのか。 + や - だけでやめた場合はどう評価するのか。
00001 のような入力も可能とするのか、電卓のように無反応とするのか。
などなど考慮するべき点はたくさんあります。

まずはどんなテキストボックスにするのかをじっくり考えてみて、必要な処理を割り出してみる必要がありますね。
「初心者です」というのであればここで一発、自力で開発してみてはどうでしょうか。

自力はギブだけど要件は満たしたいという場合は先人の力作を使ってみてはどうでしょう。
http://jeanne.wankuma.com/library/
http://www.ailight.jp/Content/Read/AIControls
    • good
    • 1
この回答へのお礼

ご丁寧に回答いただいてありがとうございました
すごく参考になりました。こんなに複雑の問題だと思いませんでした
これからの一歩はどこへ進むことがよくわかりました。がんばって開発してみます
ありがとうございました

お礼日時:2016/09/01 08:55

以下のようにしてください。


Dim Value As Integer
Value = 1000000
TextBox.Text = Value.ToString("#,##0")

Valueは例として、1000000を入れてますが、ここはあなたがTextBoxへ表示したい数値をセットしてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました
私の説明不足何ですけど、ひとつの数字だけではありません。今vb 2010の初心者です、電卓の試作をやっています。テキストボックスの中に、入力した数字とか、結果とか、すべて千単位カンマしたいです。
よろしくお願いします

お礼日時:2016/08/31 08:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています