C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 小数点以下の桁の制御


(過去ログ 55 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■31113 / inTopicNo.1)  小数点以下の桁の制御
  
□投稿者/ まいか (51回)-(2009/01/15(Thu) 14:28:16)

分類:[.NET 全般] 

お世話になります
WinXP、VB.NET2005と言う環境です。
テキストボックスに数字を入力する際に例えば「12345.67」等、小数点以下の制御が出来ないかと言う事です
例えば、小数点以下何桁まで入力するかと言う設定は Private lngSyosu As Long = 2(小数点以下第二位まで)と設定します
テキストボックスに数字を入れていってコンマ以下2桁以上入力出来ない様にするにはどうすれば良いのでしょうか
よろしくお願いします
引用返信 編集キー/
■31114 / inTopicNo.2)  Re[1]: 小数点以下の桁の制御
□投稿者/ .SHO (530回)-(2009/01/15(Thu) 14:30:27)
テキストボックスをフックして、キーストロークを操作です。
引用返信 編集キー/
■31117 / inTopicNo.3)  Re[1]: 小数点以下の桁の制御
□投稿者/ 魔界の仮面弁士 (962回)-(2009/01/15(Thu) 14:35:53)
2009/01/15(Thu) 14:39:54 編集(投稿者)

No31113 (まいか さん) に返信
> テキストボックスに数字を入力する際に例えば「12345.67」等、小数点以下の制御が出来ないかと言う事です
NumericUpDown コントロールでは駄目でしょうか?
(DecimalPlaces プロパティ)

> テキストボックスに数字を入れていってコンマ以下2桁以上入力出来ない様にするにはどうすれば良いのでしょうか
「コンマ(comma)」だと、「.」ではなく「,」になってしまうような。

--- 編集追記 ---
# あれ。でも 1 秒未満の時間を表す時に「0コンマ3秒」とかって言うなぁ。
# 小数点の意味もあるんだっけか…?
引用返信 編集キー/
■31120 / inTopicNo.4)  Re[2]: 小数点以下の桁の制御
□投稿者/ επιστημη (1525回)-(2009/01/15(Thu) 14:47:01)
επιστημη さんの Web サイト
# たまにはゴミ。

> 「コンマ(comma)」だと、「.」ではなく「,」になってしまうような。

ヨーロッパ表記だと '.'と','が入れ替わります。1.234.567,890 みたいに。
「0コンマ3秒」てのはヨーロッパ表記から来たのかも知れませんですね。

引用返信 編集キー/
■31122 / inTopicNo.5)  Re[2]: 小数点以下の桁の制御
□投稿者/ よねKEN (252回)-(2009/01/15(Thu) 14:48:48)
>>テキストボックスに数字を入れていってコンマ以下2桁以上入力出来ない様にするにはどうすれば良いのでしょうか
> 「コンマ(comma)」だと、「.」ではなく「,」になってしまうような。
>
> --- 編集追記 ---
> # あれ。でも 1 秒未満の時間を表す時に「0コンマ3秒」とかって言うなぁ。
> # 小数点の意味もあるんだっけか…?

西洋諸国の多くは「,」が小数点記号ですね。(「.」が桁区切り)

引用返信 編集キー/
■31123 / inTopicNo.6)  Re[3]: 小数点以下の桁の制御
□投稿者/ 774RR (286回)-(2009/01/15(Thu) 14:56:49)
この手の話って良く出るんだけど

そんな制約的ユーザーインターフェイスが本当にユーザーのためになるの?
ってあたりの検証/検討はちゃんとしてあるわけ?

マウス操作でコピー済み文字列をペーストして入力すると回避できたり、とか
逆に、あるユーザは
「小数点下4桁ある数値を Excel セルからペーストで入力して、その下4桁と3桁を消したい」
って思っているかもしれないぞ。

俺んところにこの種の案件がきたら、突っ返すことにしてる。

入力に制約を設けるのではなく、入力確定時点でチェックするほうがいい。
とは思わないかい?
引用返信 編集キー/
■31124 / inTopicNo.7)  Re[4]: 小数点以下の桁の制御
□投稿者/ みきぬ (332回)-(2009/01/15(Thu) 15:06:36)
ところで、作っているものって Windows フォーム アプリケーション でいいのかしら。
Web アプリケーション(ASP.NET)だったりはしないよね?
引用返信 編集キー/
■31127 / inTopicNo.8)  Re[4]: 小数点以下の桁の制御
□投稿者/ まいか (52回)-(2009/01/15(Thu) 15:37:44)
皆様ありがとうございます
小数点以下の桁の制御の事を聞いているのは、Accessでは定型入力がありましたが
それをVB.NETのテキストボックスでそれに似た物を実現出来るのかどうか、
変数等で動的に変更したり設定したり出来ないかなと思いました

小数点以下と整数を分けるのは、今は「.」の方で考えて貰えますでしょうか
引用返信 編集キー/
■31128 / inTopicNo.9)  Re[5]: 小数点以下の桁の制御
□投稿者/ まいか (53回)-(2009/01/15(Thu) 15:39:04)
みきぬさん、ありがとうございます
> ところで、作っているものって Windows フォーム アプリケーション でいいのかしら。
フォームアプリケーションです
引用返信 編集キー/
■31146 / inTopicNo.10)  Re[5]: 小数点以下の桁の制御
□投稿者/ みきぬ (333回)-(2009/01/15(Thu) 17:15:54)
Access の定型入力のことはよくわかりませんが、

案1:
・既にあがった NumericUpDown を使う(ただ未入力を実現するのは一苦労)

案2:
・MaskedTextBox を使う(ちょっと微妙)

案3:
・整数部と小数部で TextBox を分ける(もっと微妙)

案4:
・TextBox.TextChanged イベント内で頑張る

くらいかなあ、思いつくのは。
引用返信 編集キー/
■31156 / inTopicNo.11)  Re[6]: 小数点以下の桁の制御
□投稿者/ biac (17回)-(2009/01/15(Thu) 17:54:37)
biac さんの Web サイト
私も、 774RR さんの #31123 と同じような考えです。 が、 もしどうしてもやるハメになったのなら、 TextBox を継承した独自のコントロールを作って、 そこで…

> 案4:
> ・TextBox.TextChanged イベント内で頑張る

…かなあ。

そういうところに注文付けてくるお客さんなら、案1 〜 案3 は却下すると思うですよ。

※ で、 後から途中に '.' を打たれたとか、 二つ目の '.' を打たれたとかした時のロジックが抜けてて、 バグるですよ〜 f(^^; あ、 あと、 消されたときとかも f(^^;;;


◆ 余談: 将来の話 (といっても、WPF やってる人にはすでに現実の話 )
WPF のテキストボックスでは、 IME での変換中もガンガン TextChanged イベントが飛んで来るようになり、 しかも、 変換確定のタイミングが取得できません。 IME で変換して数字を入力する人が、 (まずいないと思うけど f(^^; ) 居たらアウトです。 確定前の変換候補に条件から外れる文字列があって、 それが TextChanged イベントで飛んできたときに、 コードから TextBox の文字列を変更すると、 その瞬間に IME の変換ウィンドウが閉じちゃったり、 逆に開きっぱなしになったりします。 ( 開きっぱなしになるのはバグだと思うけど。 そのほかの挙動は、 仕様らしいです。 )
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -