DGV TimeSpan-Spalte übernimmt Format nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    DGV TimeSpan-Spalte übernimmt Format nicht

    Hallo,

    Hab hier eine DataTable mit u.a. einer Timespan-Spalte.

    Im Designer unter DGV - ColumnsCollection - [die jeweilige Spalte] - DefaultCellStyle - Format stelle ich T alias "HH:mm:ss" ein.
    Er zeigt allerdings weiterhin Millisekunden an (Und das auf 7 Stellen hinterm Komma...)

    Wenn ich bei einer DateTime Spalte Sekunden zum Datum hinzufüge klappt das.

    Ich muss wahrscheinlich meine Werte runden, um die Millisekunden loszuwerden. Aber wie rundet man Timespans?

    Viele Grüße

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Laut stackoverflow ist das gewünschte Verhalten durch eine entsprechende Formatangabe möglich, siehe Anhang. Hab ich probiert, klappt.
    Oder eben HH\:mm\:ss für 24-Stunden-Format
    Bilder
    • Spaltenformat für TimeSpan.png

      16,92 kB, 549×568, 53 mal angesehen
    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.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    Also nur das Format so reinschreiben klappt nicht. Die Implementierung der Klasse hast du auch vorher gemacht?

    So wie ich es verstadnen habe ist, gewährleistet das Ganze natürlich auch die Funktion im Designer, aber mir reichts ja schon wenn ich das Format ändern kann. Das muss ja nicht zwangsläufig per Designer sein.
    Wie jetzt, klappt nicht? Ich hab die Spalte mit dem Format im Designer eingestellt, dann diesen TimeSpan-ErstellCode

    VB.NET-Quellcode

    1. Tds1.Foos.AddFoosRow(Date.Now - Date.Today)
    und Ergebnis siehe Anhang. Mehr hab ich nicht machen müssen.
    Ah, Moment. HH:\mm\:ss ist Blödsinn. Nur das Kleinformat, also hh:\mm\:ss passt. Bei ner Zeitspanne ist ja eine Unterscheidung zwischen 12-Stunden-Format und 24-Stunden-Format gar nicht zutreffend. Ist ja keine Uhrzeit. Aber es werden wirklich nur < 24 Stunden angzeigt. Alles andere würde dann ja ganze Tage umfassen. Und die sind hier jetzt nicht mit in dem Format erfasst.

    Bei Tds1.Foos.AddFoosRow(Date.Now - Date.Now.AddHours(-1).AddSeconds(53)) kommt 00:59:06 raus. Passt (fast; "Rundungsfehler")
    Bilder
    • Ergebnis.png

      1,5 kB, 379×159, 45 mal angesehen
    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.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    jo, ich weise auch nochmal drauf hin, dass für Timespan andere FormatZeichenfolgen gelten als für DateTime.
    Da muss man die richtige MS-Doku auffinden und genau befolgen.

    Ich hab mir übrigens abgewöhnt, Timespan im Dataset zu verwenden.
    Weil Dataset kann sowas nicht aufsummieren etc.
    Stattdessen verwende ich für Zeitwerte Double, und wende komplizierten Kram an, um die Anzeige so hinzubasteln, dasses wie Zeitspannen aussieht.
    Auch habe ich Textbox-Manipulationen, mit denen man Zeitwerte komfortabler eingeben kann als mit einem DateTimePicker.
    Glaub Im SourceCode-Austausch fliegt das rum: "Stechuhr"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    @Haudruferzappeltnoch Da ich gefühlt fast jeden Thread von dir bisher verschieben musste: Bitte poste Fragen zu Datenbankprogrammierung direkt ins richtige Unterforum! Du schreibst direkt zu Anfang selbst was von "DataTable", also klar ein Fall fürs Datenbankforum.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Teste mal bitte das Projekt im Anhang und sag, was passiert. Ist mit .NET FX 4, erstellt in VS2019.
    Dateien
    • WinFormsFXVB.zip

      (38,72 kB, 51 mal heruntergeladen, zuletzt: )
    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.
    @Marcus Gräfe Das mit der DataTable schreib ich ja nur, weil es denke ich relevant ist zu schildern, wie das DGV angebunden ist. DGV, Formattierung und Designer-Einstellungen würde ich da nicht in der Datenbänkerei verorten. Nächstes Mal versuch ichs dort.

    @VaporiZed Dein Programm funktioniert und meines jetzt auch. Ich muss beim ersten Mal etwas übersehen haben. Ich hab das Format sicher irgendwo nicht richtig abgetippt.
    Ich dachte im ersten Moment an die Riesenlösung von stackoverflow und das die wohl noch dazu gehört, deswegen habe ich es wohl übersehen. Danke
    na, Foren-Suche-Stichwort habich doch gegeben - aber hier: Stechuhr
    achschreck - es findet "nur" eine TextboxColumn-Manipulation verwendung. Die baut aber auf einer "richtigen" Textbox-Manipulation auf (welche aber in dem Teil nicht verwendet wird, weil da immer direkt ins DGV eingegeben wird)

    Also es ist halt nur SourceCode und kein Tutorial, wo iwie schlau was erklärt werden würde.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Bedingt ja. Der Syntaxumfang ist aber natürlich deutlich beschränker, siehe MicDocs
    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.