| |
VB.NET - Ein- und UmsteigerSortieren in DataGridView | | | Autor: spatzimatzi | Datum: 16.11.17 12:27 |
| Hallo,
mein DataGridView funktioniert grundsätzlich nach meinen Wünschen.
2 Sachen stören mich aber
1. Sortierung in rechts ausgerichteten Spalten
Habe ich numerische Werte, dann richte ich diese aus an den rechten Rand.
Das was stört ist jedoch das SortGlyphen am rechten Rand, sodass die Spaltenbeschriftung im Header nicht entsprechend ausgerichtet werden kann. SortMode steht auf Automatic.
Jetzt meine Frage:
Kann man das SortGlyphen linksbündig ausrichten?
Wenn nein, welche Möglichkeiten bestehen noch?
Habe gelesen, dass man auch manuell, sprich über den Programm-Code sortieren kann
Dazu muss man SortMode auf Programmatic stellen und mit SortOrder arbeiten.
Aber bei dieser Variante wird auch das SortGlyph rechts ausgerichtet.
Bleibt die Frage:
Kann man das SortGlyh unterdrücken und selber zeichnen
Wie müsste das aussehen?
2. Lange Spaltennamen trennen
Hat man lange Namen als Spaltenbezeichner, ab nur schmale Spalten, dann hat man ein Darstellungsproblem
Beispiel: Rechnungsbetrag
Ich hätte gerne gewusst, wie ihr dieses Problem löst
Schreibt ihr es mit einem Bindestrich (Rechnungs-Betrag) und trennt es bei einer schmalen Spalte
Oder fügt ihr ein Leerzeichen ein (Rechnungs- Betrag oder Rechnungs Betrag) und lasst es vom System trennen.
Wichtig für mich ist natürlich die Fragen, wie ich die Anzahl der möglichen Zeichen in der Spalte ermittele.
Vielen Dank für eure Bemühungen
spatzimatzi | |
Re: Sortieren in DataGridView | | | Autor: Manfred X | Datum: 16.11.17 16:06 |
| Hallo!
Wer spezielle Wünsche hat, muß diese umsetzen.
Du kannst das CelPainting-Event des Grid nutzen,
um die Spaltenheader per Code zu zeichnen.
Private Sub dgv_CellPainting(sender As Object, _
e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) _
Handles dgv.CellPainting
If e.RowIndex = -1 AndAlso e.ColumnIndex >= 0 Then
Dim col As DataGridViewColumn = dgv.Columns(e.ColumnIndex)
If col.Selected Then
e.PaintBackground(e.CellBounds, True)
Else
e.PaintBackground(e.CellBounds, False)
End If
Using br As New SolidBrush(Color.Red)
Dim p As Point = e.CellBounds.Location
p.Offset(5, 5)
'Hier etwas basteln .....
e.Graphics.DrawString(col.HeaderText, dgv.Font, br, p)
End Using
e.Handled = True
End If
End Sub Lange Spalteninfos kann man als TooltipText anzeigen. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|