2016-06-23 5 views
0

を動作しません:DefaultCellStyle番号の形式は、私は、クエリ以下と<code>Datagridview</code>のデータのインポート持って

dt1 = dc.RunQuery("SELECT dbo.Payment.[Date], dbo.Payment.id FROM dbo.Payment INNER JOIN dbo.Moein ON dbo.Payment.FK_MoeinCode = dbo.Moein.MoeinCode ORDER BY dbo.Payment.[Date] ASC"); 
dataGridView1.DataSource = dt1; 
dataGridView1.Columns.Add("2", "Detail"); 
dataGridView1.Columns.Add("3", "X"); 
dataGridView1.Columns.Add("4", "Y"); 
dataGridView1.Columns.Add("5", "Remain"); 

および多くを...

コードの最後に、私はコードの下に使用します。

dataGridView1.Columns[3].DefaultCellStyle.Format = "#,#"; 
dataGridView1.Columns[4].DefaultCellStyle.Format = "#,#"; 
dataGridView1.Columns[5].DefaultCellStyle.Format = "#,#"; 

しかし、これは動作しません:(

私は欲しいです3,4,5このような111,555

+0

形式細胞へCellFormattingイベントの使用を。これをチェックして; http://stackoverflow.com/questions/5658287/defaultcellstyle-format-is-not-applied-when-datagridview-is-bound – Berkay

答えて

0

DataGridViewに名前とヘッダーテキストのみを使用して、バインドされていない列を追加しました。このような場合、列にはValueTypeが含まれていないので、書式設定はその値には適用されません。したがって、バインドされていない列にはValueTypeを設定する必要があります。

1000セパレータと小数点以下の数字(たとえば2桁)を示す数値形式を表示するには、N2形式を使用できます。

this.dataGridView1.Columns.Add(new DataGridViewTextBoxColumn() 
{ 
    ValueType = typeof(decimal), 
    Name = "Column1", 
    HeaderText = "Column One" 
}); 
this.dataGridView1.Columns["Column1"].DefaultCellStyle.Format = "N2"; 

この方法では、列のようなデータを示しています。12,345.67

+0

これを試してみましたが、その作業は最初の行だけで、他の行はまだ正常です – user2588132

+0

これは何もありません最初の行に固有のことをする。すべての行のその列に対して正しく動作します。ソリューションをテストするには、正確なコードをフォームの 'Load'イベントハンドラにクリーンな形式で置くだけで、他のコードは必要ありません。 –

+0

@ user2588132投稿はあなたの質問に答えているようです。答えの近くにあるチェックマークをクリックすると、回答を受け入れることができます。また、回答を受け入れるときは、投稿の近くにある上向きの矢印をクリックして回答に投票すると素晴らしいでしょう。まったく義務ではありませんが、一般的で合理的で推奨されています。回答を受け取る方法の詳細については、[こちらの記事](http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack-overflow)を参照してください。 –

関連する問題