2011-07-08 2 views
1

私は既存のソフトウェアを使用しています。一部のデータメンバーを持つオブジェクトがあります。そのうち2つは通貨(double)です。私はそれらをdatagridviewに表示する必要があります。私は正しい解決策が通貨オブジェクトを作成し、ToString()メソッドをオーバーロードすることを知っています。しかし、私は既存のオブジェクトを変更することはできません(少なくとも、私には再テストが必要です)。2つの異なる通貨を2列にまとめてデータグリッドビューに表示

私はDefaultCellStyleのフォーマット値を変更しました。結果はほとんど私が望むものです。

myCol.DefaultCellStyle.Format = "C2"; display $23.56 

通貨記号もカスタマイズしたいと思います。

アイデア?

myCol.DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo("de-DE"); //display the euro symbol 
+1

解決策を回答として入力し、質問に最もよく答える場合はそれを受け入れる必要があります。 –

答えて

0

私はあなたが追加の列ごとに異なるのNumberFormatInfoを使用してコードして値をフォーマットするべきだと思い、そこにユーザーが指定することができます:私は解決策を見つけたと思う

EDIT

異なる通貨記号。

0

あなたのソリューションは

123,123.00€

のような出力が何かしたい場合は、

あなたはCellFormatting上で動作することができ€123,123.00

のように見えますイベント、そして通貨記号が前面に表示されます。

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (e.ColumnIndex == 0 && e.RowIndex != this.dataGridView1.NewRowIndex) //set your columnindex accordingly.. 
    { 
     double d = double.Parse(e.Value.ToString()); 
     e.Value = string.Format(CultureInfo.CreateSpecificCulture("de-DE"), "{0:C}", d); 
    } 

} 

BTW:Decimalはお金の種類のオブジェクトの方が適しています。

関連する問題