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

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

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

Re[4]: DataGridViewのFormat制御


(過去ログ 80 を表示中)

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

■47443 / inTopicNo.1)  DataGridViewのFormat制御
  
□投稿者/ JIN (3回)-(2010/03/02(Tue) 18:13:37)

分類:[.NET 全般] 

お世話になります。
JINと申します。

VB.net 2008
OS:Windows XP
データベース:Oracle 11g

上記の環境で開発をしております。

現在、DataGridViewにSQLで取得した値をバインドし、
セルの値を手入力で編集後に、Insert処理を行うというプログラムを製造しているのですが、

表示させるデータは金額の数値なので、3桁のカンマ区切りで表示したいのです。

SQLでカンマ区切りにはできるのですが、それですとセルの編集後にカンマではなく、
そのまま数値が表示されてしまいます。

DataGridViewのプロパティで、
DataGridView1.Columns(0).DefaultCellStyle.Format = "c"
という指定を行えば、金額表示ができると聞いたのですが、それでも何も変化は無く、数字のままでした。

MSDNで、「DefaultCellStyle.Format」や、「金額表示」など調べてみたのですが、
解決には至りませんでした。

申し訳ないのですが、どなたか実装方法がわかる方いらっしゃましたらご教授願えないでしょうか。

よろしくお願いします。

引用返信 編集キー/
■47444 / inTopicNo.2)  Re[1]: DataGridViewのFormat制御
□投稿者/ 魔界の仮面弁士 (1518回)-(2010/03/02(Tue) 18:40:41)
No47443 (JIN さん) に返信
> DataGridView1.Columns(0).DefaultCellStyle.Format = "c"
> という指定を行えば、金額表示ができると聞いたのですが、それでも何も変化は無く、数字のままでした。

当方では、問題無く書式化されました。

その列のデータ型(Oracle の型では無く、DataTable 側の型)が、
String になっていたりはしませんか?


Public Class Form1
    Private tbl As DataTable

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        tbl = New DataTable()
        tbl.Columns.Add("ID", GetType(Integer)).ReadOnly = True
        tbl.Columns.Add("価格", GetType(Decimal))
        tbl.Columns.Add("数量", GetType(Short))
        tbl.Columns.Add("小計", GetType(Decimal), "価格*数量")
        tbl.Columns.Add("合計", GetType(Decimal), "SUM(小計)")
        tbl.PrimaryKey = New DataColumn() {tbl.Columns("ID")}

        tbl.Rows.Add(1, 12345, 300)
        tbl.Rows.Add(2, 34567, 200)
        tbl.Rows.Add(3, 56789, 100)
        tbl.Rows.Add(4, 300, 12345)
        tbl.Rows.Add(5, 200, 12345)
        tbl.Rows.Add(6, 100, 12345)

        DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
        DataGridView1.AutoGenerateColumns = True
        DataGridView1.DataSource = tbl
        DataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight
        DataGridView1.Columns(1).DefaultCellStyle.Format = "c"
        DataGridView1.Columns(2).DefaultCellStyle.Format = "#,0"
        DataGridView1.Columns(3).DefaultCellStyle.Format = "c"
        DataGridView1.Columns(4).DefaultCellStyle.Format = "c"
        DataGridView1.AutoResizeColumns()
    End Sub
End Class

引用返信 編集キー/
■47445 / inTopicNo.3)  Re[2]: DataGridViewのFormat制御
□投稿者/ JIN (4回)-(2010/03/02(Tue) 19:04:41)
No47444 (魔界の仮面弁士 さん) に返信

> その列のデータ型(Oracle の型では無く、DataTable 側の型)が、
> String になっていたりはしませんか?

魔界の仮面弁士様
ご回答ありがとうございます。

確かに、DataGridViewのプロパティで、
String型に設定していました。

いろいろ調べたつもりでしたが、気づけてよかったです。

ありがとうございました。
引用返信 編集キー/
■47449 / inTopicNo.4)  Re[3]: DataGridViewのFormat制御
□投稿者/ 魔界の仮面弁士 (1520回)-(2010/03/02(Tue) 19:40:22)
No47445 (JIN さん) に返信
> 確かに、DataGridViewのプロパティで、
> String型に設定していました。
DataGridView の、どのプロパティでしょうか?

> いろいろ調べたつもりでしたが、気づけてよかったです。
> ありがとうございました。
解決したのでしょうか?
引用返信 編集キー/
■47463 / inTopicNo.5)  Re[4]: DataGridViewのFormat制御
□投稿者/ JIN (5回)-(2010/03/03(Wed) 10:36:28)
No47449 (魔界の仮面弁士 さん) に返信

> DataGridView の、どのプロパティでしょうか?

すみません、プロパティではなく、型指定のことでした。
DataTableの型を「Decimal」に指定したことで、
カンマ区切りによる価格表示ができるようになりました。


>>いろいろ調べたつもりでしたが、気づけてよかったです。
>>ありがとうございました。
> 解決したのでしょうか?

こちらも申し訳ございません。
解決いたしました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -