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

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

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

Re[2]: TextBoxの書式指定


(過去ログ 132 を表示中)

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

■78042 / inTopicNo.1)  TextBoxの書式指定
  
□投稿者/ ふるふる (17回)-(2015/12/09(Wed) 11:58:15)

分類:[ASP.NET (C#)] 

環境[VS2010, Framework4.5, SQLServer2012]
言語[C#]

Accessで作られたテンプレートを素に、C#へ移行しています。
TextBoxでDataBindingsを使ってSQLサーバーから取得したデータ(データセットに保存)を表示させています。
そこで、データが数値の場合に、小数点以下3桁目を四捨五入して小数点以下2桁表示にしたいです。
また小数点以下は2桁固定ではなく、0の場合は表示しないようにしたく。 Format(Value,"#.##") のような書式指定です。
TextBoxで可能でしょうか?
TextBoxでなくても可能なコントロールがあれば教えてください。

できそうなのでMaskedTextBoxを使い、Mask="9.99"としてみたところ、
127.0000000

1.27
と表示されてしまいました。Bindingしている先のDataSetでフィールドのDataTypeはSystem.Decimal なのですが、文字列として認識されているのでしょうか。

BindingNavigatorでデータの移動を行っていますが、テキストボックスのBindingsは使わず、BindingNavigatorPositionItemのTextChangeイベントで各コントロールのTextプロパティに値をセットするようにするべきでしょうか?


引用返信 編集キー/
■78045 / inTopicNo.2)  Re[1]: TextBoxの書式指定
□投稿者/ Hongliang (381回)-(2015/12/09(Wed) 12:27:44)
コントロールの方ではなく、バインディングの方で書式指定は可能です。
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.binding.aspx
Bindingクラスで言うところの、FormattingEnabledをtrueにして、FormatStringを指定すれば良いです。
(デザイナでどう設定するかは調べていませんが、DataBindingsの詳細とかいうのに多分そのような項目があるかと)

表示だけならTextBoxでもいいですが、入力も許可するのなら、NumericUpDownの方が便利かもしれません。
引用返信 編集キー/
■78046 / inTopicNo.3)  Re[1]: TextBoxの書式指定
□投稿者/ 魔界の仮面弁士 (595回)-(2015/12/09(Wed) 18:55:27)
前提条件が違っている気がするので、念のために確認。

No78042 (ふるふる さん) に返信
> 分類:[ASP.NET (C#)] 
> 環境[VS2010, Framework4.5, SQLServer2012]
> 言語[C#]
> Accessで作られたテンプレートを素に、C#へ移行しています。

対象が ASP.NET ということは、 Web アプリケーションへの移行を希望されているのですね。

元の Access アプリは、一般的な mdb / mde / adp / ade / accdb / accde ではなく、
Access 2013 Web Application / SharePoint Services 等だったのでしょうか?


> できそうなのでMaskedTextBoxを使い、Mask="9.99"としてみたところ、
ASP.NET AJAX Toolkit の MaskedEditコントロール(MaskedEditExtender / MaskedEditValidator)
ではなく、デスクトップアプリ用の System.Windows.Forms.MaskedTextBox クラスだったりはしませんか?
引用返信 編集キー/
■78057 / inTopicNo.4)  Re[2]: TextBoxの書式指定
□投稿者/ ふるふる (18回)-(2015/12/10(Thu) 09:17:36)
Hongliang さま。
ありがとうございます。Bindingsの詳細設定のダイアログでフォーマットの指定が可能でした。

魔界の仮面弁士さま。
御指摘ありがとうございます。別のプロジェクトがWeb アプリケーションなので間違えてASP.Netにしてしまいました。
元のAccessアプリは.adpです。
他にも10本以上既存のadpファイルのシステムがあり、社内アクセスのバージョンが上がると使えなくなるので
.Netへ移行させる事案が発生すると思われます。
今回の経験が役立ちます。

ありがとうございました。


No78046 (魔界の仮面弁士 さん) に返信
> 前提条件が違っている気がするので、念のために確認。
>
> ■No78042 (ふるふる さん) に返信
>>分類:[ASP.NET (C#)] 
>>環境[VS2010, Framework4.5, SQLServer2012]
>>言語[C#]
>>Accessで作られたテンプレートを素に、C#へ移行しています。
>
> 対象が ASP.NET ということは、 Web アプリケーションへの移行を希望されているのですね。
>
> 元の Access アプリは、一般的な mdb / mde / adp / ade / accdb / accde ではなく、
> Access 2013 Web Application / SharePoint Services 等だったのでしょうか?
>
>
>>できそうなのでMaskedTextBoxを使い、Mask="9.99"としてみたところ、
> ASP.NET AJAX Toolkit の MaskedEditコントロール(MaskedEditExtender / MaskedEditValidator)
> ではなく、デスクトップアプリ用の System.Windows.Forms.MaskedTextBox クラスだったりはしませんか?
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -