2016-06-23 3 views
0

Ich habe ein Datagridview Import von Daten mit folgenden Abfrage:Defaultzahlenformat funktioniert nicht

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"); 

und mehr ...

In Ende Code I Code unten verwenden:

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

Aber das funktioniert nicht :(

Ich will Spalten 3,4,5 wie diese 111,555.

+0

Verwendung Cellformatting-Ereignis zu Format-Zellen. Überprüfen Sie dies; http://stackoverflow.com/questions/5658287/defaultcellstyle-format-is-not-appled-when-datagridview-is-bound – Berkay

Antwort

0

Sie haben einige ungebundene Spalten zu DataGridView hinzugefügt, die nur Name und Headertext verwenden. In diesem Fall hat die Spalte keine ValueType und daher wird die Formatierung nicht auf ihren Wert angewendet. Sie sollten also ValueType für diese ungebundenen Spalten festlegen.

Um ein numerisches Format anzuzeigen, das Tausendertrennzeichen und einige Nachkommastellen (z. B. 2 Ziffern) zeigt, können Sie das Format N2 verwenden.

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

diese Weise wird die Spaltendaten wie zeigt: 12,345.67

+0

versuchte dies, aber seine Arbeit nur in der ersten Zeile andere Zeilen noch normal – user2588132

+0

Es hat nichts spezifisch für die erste Reihe zu tun. Es funktioniert ordnungsgemäß für diese Spalte in allen Zeilen. Um die Lösung zu testen, geben Sie einfach den genauen Code in den 'Load'-Event-Handler des Formulars in einer sauberen Form ein, Sie benötigen keinen anderen Code. –

+0

@ user2588132 Es scheint der Beitrag beantworten Ihre Frage. Sie können eine Antwort akzeptieren, indem Sie auf das Häkchen in der Nähe der Antwort klicken. Auch wenn Sie eine Antwort akzeptieren, wäre es toll, wenn Sie auch für die Antwort stimmen, indem Sie auf den Pfeil neben dem Beitrag klicken. Es ist überhaupt nicht obligatorisch, aber es ist üblich, vernünftig und empfohlen. Weitere Informationen dazu, wie akzeptierende Antworten funktionieren, finden Sie in diesem Beitrag (http://meta.stackexchange.com/questions/23138/how-to-accept-the-answer-on-stack- overflow). –