Hallo zusammen.
Nun bin ich endlich mal in der leidlichen Situation angekommen, dass ich formatierte Rohdaten in nem DGV anzeigen lassen will. Mit der Option, dass man neue Werte als Rohdaten oder als formatierte Daten angeben kann. Eine Lösung hab ich. Aber ich frag mich und Euch, ob das Pfeil-Rücken-Brust-Auge ist:
Ergebnis:
zu Beginn
gar nix oder Blödsinn eingegeben + Enter
Nun bin ich endlich mal in der leidlichen Situation angekommen, dass ich formatierte Rohdaten in nem DGV anzeigen lassen will. Mit der Option, dass man neue Werte als Rohdaten oder als formatierte Daten angeben kann. Eine Lösung hab ich. Aber ich frag mich und Euch, ob das Pfeil-Rücken-Brust-Auge ist:
VB.NET-Quellcode
- Public Class FrmMain
- Private ReadOnly Foos As New List(Of Foo)
- Private ReadOnly Appendix As String = " Klicks"
- Private Enum ValueToSetWhenTypingBullshit
- DefaultValue
- PreviousValue
- End Enum
- Private ReadOnly CorrectedValue As ValueToSetWhenTypingBullshit = ValueToSetWhenTypingBullshit.DefaultValue
- Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Foos.Add(New Foo With {.ClickCount = 23})
- BsFoos.DataSource = Foos
- End Sub
- Private Sub DgvFoos_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DgvFoos.CellFormatting
- If e.Value IsNot Nothing AndAlso e.ColumnIndex = ColClickCount.DisplayIndex Then e.Value = e.Value.ToString & Appendix
- End Sub
- Private Sub DgvFoos_DataError(sender As Object, e As DataGridViewDataErrorEventArgs) Handles DgvFoos.DataError
- If CorrectedValue = ValueToSetWhenTypingBullshit.DefaultValue Then DgvFoos.CurrentCell.Value = 0 'nicht optimal, da Integer-spezifisch/nicht generisch
- e.Cancel = False
- End Sub
- Private Sub DgvFoos_CellParsing(sender As Object, e As DataGridViewCellParsingEventArgs) Handles DgvFoos.CellParsing
- If e.Value.ToString.EndsWith(Appendix) Then e.Value = Convert.ChangeType(e.Value.ToString.Replace(Appendix, Nothing), e.DesiredType) : e.ParsingApplied = True
- End Sub
- End Class
- Friend Class Foo
- Property ClickCount As Integer
- End Class
Ergebnis:
zu Beginn
123
eingegeben + Enter42 Klicks
eingegeben + Entergar nix oder Blödsinn eingegeben + Enter
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.