Hi,
ich habe ein recht einfaches Problem ... bei dem ich trotzdem nicht so recht weiterkomme.
Ich habe eine DGV, die unter anderem die Decimal Spalten CREDIT und DEBIT beinhaltet. Eine der beiden Spalten ist naturgemäß immer 0 ... und deshalb wäre es wünschenswert, wenn diese Werte nicht angezeigt würden. Das habe ich wie folgt versucht:
Das klappt auch sehr hübsch ... nur habe ich ein Problem. Ich möchte nach diesen Werten auch durch ColumnHeader MouseClick sortieren. Natürlich soll dabei das Format (Decimal) berücksichtig werden.
Hier scheitere ich aber mit einem Conversion Error, wenn eine Zelle den "NULL-String" enthält.
Mir fällt keine richtig überzeugende Lösung dazu ein:
1. Ich schalte um vonSortMode "Automatic" auf SortMode "Programmatic" und schreibe meine eigene Sort Routine. Das sollte zwar funktionieren, scheint mir aber mit Kanonen auf Spatzen geschossen ...
2. Ich ändere das Format von Decimal auf String - aber dann stimmt natürlich die Sortierreihenfolge nicht mehr .... ich müsste also wieder eine eigene Sort Routine schreiben - das ist dann wohl die "dümmste" Lösung die mir einfallen kann.
Hat jemand eine zündende Idee, wie man das mit der Zero Suppression einfacher hinbekommen kann ? Ich bin sicher euch fällt etwas viel Besseres ein als mir.
LG
Peter
ich habe ein recht einfaches Problem ... bei dem ich trotzdem nicht so recht weiterkomme.
Ich habe eine DGV, die unter anderem die Decimal Spalten CREDIT und DEBIT beinhaltet. Eine der beiden Spalten ist naturgemäß immer 0 ... und deshalb wäre es wünschenswert, wenn diese Werte nicht angezeigt würden. Das habe ich wie folgt versucht:
VB.NET-Quellcode
- Private Sub DgvAccount_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs) Handles DgvAccount.CellPainting
- Dim j = e.ColumnIndex
- 'Select debit / credit columns
- If j = itmAccountCredit.Index OrElse j = itmAccountDebit.Index Then
- Dim i = e.RowIndex
- If i = -1 Then Exit Sub 'Just to make sure
- If DgvAccount.Item(j, i).Value.ToString = "" Then Exit Sub 'Cannot Cint a null string
- Dim myValue = CInt(DgvAccount.Item(j, i).Value)
- If myValue = 0 Then DgvAccount.Item(j, i).Value = "" 'Zero suppression
- End If
- End Sub
Das klappt auch sehr hübsch ... nur habe ich ein Problem. Ich möchte nach diesen Werten auch durch ColumnHeader MouseClick sortieren. Natürlich soll dabei das Format (Decimal) berücksichtig werden.
Hier scheitere ich aber mit einem Conversion Error, wenn eine Zelle den "NULL-String" enthält.
Mir fällt keine richtig überzeugende Lösung dazu ein:
1. Ich schalte um vonSortMode "Automatic" auf SortMode "Programmatic" und schreibe meine eigene Sort Routine. Das sollte zwar funktionieren, scheint mir aber mit Kanonen auf Spatzen geschossen ...
2. Ich ändere das Format von Decimal auf String - aber dann stimmt natürlich die Sortierreihenfolge nicht mehr .... ich müsste also wieder eine eigene Sort Routine schreiben - das ist dann wohl die "dümmste" Lösung die mir einfallen kann.
Hat jemand eine zündende Idee, wie man das mit der Zero Suppression einfacher hinbekommen kann ? Ich bin sicher euch fällt etwas viel Besseres ein als mir.

LG
Peter