Hallo,
bei einem Header eines Datagridviews ist mir aufgefallen, dass ein Zeilenumbruch in die falsche Richtung geht.
Das Besondere bei der Anzeige ist, dass diese senkrecht angezeigt werden:
In der Spalte "AutoBoot Wartezeit" wird das Wort "zeit" rechts neben "AutoBoot Warte" angezeigt.
Das Wort "Zeit" sollte links vom "AutoBoot Warte" angezeigt werden.
Weiß jemand, wo diese Einstellung vorgenommen werden muss?
Ein kleiner Schöheitsfehler:
Wie man im Screenshot sehen kann, werden die Titel einer Überschrift direkt an den unteren Rand geklatscht. In der Webseitenprogrammierung gibt es hierfür u.a. die Eigenschaften "Padding" oder "Margin", mit denen ein Rand definiert werden kann. In .net scheint es solche Eigenschaften nicht zu geben. Weiß jmand, wie ein kleiner Rand definiert werden kann?
Folgender VB.net Code wird eingesetzt, um die Header Vertical anzeigen lassen zu können:
Spoiler anzeigen
bei einem Header eines Datagridviews ist mir aufgefallen, dass ein Zeilenumbruch in die falsche Richtung geht.
Das Besondere bei der Anzeige ist, dass diese senkrecht angezeigt werden:
In der Spalte "AutoBoot Wartezeit" wird das Wort "zeit" rechts neben "AutoBoot Warte" angezeigt.
Das Wort "Zeit" sollte links vom "AutoBoot Warte" angezeigt werden.
Weiß jemand, wo diese Einstellung vorgenommen werden muss?
Ein kleiner Schöheitsfehler:
Wie man im Screenshot sehen kann, werden die Titel einer Überschrift direkt an den unteren Rand geklatscht. In der Webseitenprogrammierung gibt es hierfür u.a. die Eigenschaften "Padding" oder "Margin", mit denen ein Rand definiert werden kann. In .net scheint es solche Eigenschaften nicht zu geben. Weiß jmand, wie ein kleiner Rand definiert werden kann?
Folgender VB.net Code wird eingesetzt, um die Header Vertical anzeigen lassen zu können:
VB.NET-Quellcode
- Private Sub DataGridView1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting
- Dim myDefault = DataGridView1.ColumnHeadersDefaultCellStyle
- Dim myDefaultColor As New ControlColor
- myDefaultColor.BackColor = myDefault.BackColor
- myDefaultColor.ForeColor = myDefault.ForeColor
- Dim myColor As ControlColor = HeadColumn_Color(e.ColumnIndex, myDefaultColor)
- If e.RowIndex = -1 Then
- With e.Graphics
- Dim myBgBrush = New SolidBrush(myColor.BackColor)
- Dim myTextBrush = New SolidBrush(myColor.ForeColor)
- 'myTextBrush = New SolidBrush(HeadColumn_ForeColor(e.ColumnIndex, myDefault.ForeColor))
- .FillRectangle(myBgBrush, e.CellBounds)
- '.FillRectangle(Brushes.AliceBlue, e.CellBounds)
- Dim myPen = New Pen(myTextBrush)
- .DrawLine(myPen, e.CellBounds.Right - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1)
- .DrawLine(myPen, e.CellBounds.Left, e.CellBounds.Bottom - 1, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1)
- Dim myAlign = ConvertAlignToLineAlign(myDefault.Alignment)
- 'Using sf As New StringFormat With {.Alignment = StringAlignment.Far, .LineAlignment = StringAlignment.Center, .FormatFlags = StringFormatFlags.DirectionVertical}
- Using sf As New StringFormat With {.Alignment = myAlign.Alignment, .LineAlignment = myAlign.lineAlignment, .FormatFlags = StringFormatFlags.DirectionVertical}
- If e.ColumnIndex >= 0 Then
- Using fnt As New Font(DataGridView1.Font.FontFamily, 10, myDefault.Font.Style)
- .DrawString(DataGridView1.Columns(e.ColumnIndex).HeaderText, fnt, myTextBrush, e.CellBounds, sf)
- End Using
- End If
- End Using
- e.Handled = True
- End With
- Else
- If e.ColumnIndex >= 0 Then
- ' Daten-Zellen
- Dim myCell = DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex)
- Dim bReadonly As Boolean = myCell.ReadOnly
- With myCell.Style
- .ForeColor = If(bReadonly, ColorFormatControl.InvertColor(myColor.ForeColor), myColor.ForeColor)
- .BackColor = If(bReadonly, ColorFormatControl.InvertColor(myColor.BackColor), myColor.BackColor)
- End With
- End If
- End If
- End Sub
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „BigBen2003“ ()