Announcement

Collapse
No announcement yet.

datagridview DefaultCellStyle.Alignment

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • datagridview DefaultCellStyle.Alignment

    guten morgen zusammen,

    habe ein problem mit "DefaultCellStyle.Alignment"

    ich formatiere per code eine spalte als numerisch mit 2 nachkommastellen UND rechtsbündiger darstellung per...

    [highlight=vbnet]With datagridview1.Columns(6)
    .HeaderText = "Kosten"
    .HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
    .DefaultCellStyle.Format = "f2"
    .DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
    End With[/highlight]

    ergebnis:
    - headertext wird korrekt rechtsbündig dargestellt
    - betr. zelle wird korrekt formatiert
    - betr. zelle wird NICHT rechtsbündig dargestellt, sondern linksbündig

    woran kann das liegen?
    Zuletzt editiert von tioga63; 21.06.2010, 07:18.

  • #2
    Kommazahlen sind öfter mal Ausnahmen. Ich könnte mir vorstellen dass das einfach bei denen mal wieder nicht möglich ist. Hast du schonmal "Kommazahl rechtsbündig" in Google eingegeben?

    Comment


    • #3
      Komisch bei mir klappt es

      Komisch bei mir klappt es!
      Schiebe DataGridView ins Form und ersetze Code um es zu testen.

      Ist Deine Spalte auch von Typ Double?

      [highlight=vbnet]
      Public Class Form1
      Dim DT As New DataTable
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      DataGridView1.DataSource = DT
      DT.Columns.Add(New DataColumn("", Type.GetType("System.Double")))
      Randomize()
      For A = 0 To 10 Step 1
      DT.Rows.Add(Rnd() * 100)
      Next
      With DataGridView1.Columns(0)
      .HeaderText = "Kosten"
      .HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
      .DefaultCellStyle.Format = "f2"
      .DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
      End With
      End Sub
      End Class
      [/highlight]

      Comment


      • #4
        Originally posted by Markus K. View Post
        Komisch bei mir klappt es!
        Schiebe DataGridView ins Form und ersetze Code um es zu testen.

        Ist Deine Spalte auch von Typ Double?

        [highlight=vbnet]
        Public Class Form1
        Dim DT As New DataTable
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataGridView1.DataSource = DT
        DT.Columns.Add(New DataColumn("", Type.GetType("System.Double")))
        Randomize()
        For A = 0 To 10 Step 1
        DT.Rows.Add(Rnd() * 100)
        Next
        With DataGridView1.Columns(0)
        .HeaderText = "Kosten"
        .HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
        .DefaultCellStyle.Format = "f2"
        .DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopRight
        End With
        End Sub
        End Class
        [/highlight]
        hi markus,
        komme jetzt nach einigen tagen wieder mal dazu, mich mit dem ALIGNMENT-problem zu befassen. ich hole mir die daten per ORACLEDATAADAPTER in eine DATATABLE und übergebe diese dann an die DATASOURCE des DatagridView.

        fehler liegt beim entwickler (also bei MIR ;-)) )
        ich habe eine zentrale SUB, die einige voreinstellungen der verwendeten datagridview setzt.
        darin setze ich die ALIGNMENT-eigenschaft standardmässig auf MIDDLELEFT.
        eine nachträgliche änderung dieser eigenschaft auf MIDDELERIGHT wird, aus welchen gründen auch immer, NICHT umgesetzt. also nehme ich die default-eigenschaft einfach raus und schon funktioniert auch das MIDDLERIGHT, wenn ich es brauche.

        VIELEN DANK FÜR EURE HILFE und TIPS.
        Zuletzt editiert von tioga63; 13.07.2010, 14:05.

        Comment

        Working...
        X