währung in datagridview

  • VB.NET
  • .NET 7–8

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von strzata.

    währung in datagridview

    GUTEN Abend,
    eine Spalte in einem DGV habe ich im CellSyle als Währung formatiert. Zur Laufzeit erscheint aber kein €Zeichen hinter den Werten. Die Spaltre hat als DataProperty Name eine Spalte aus einer Table. Darin stehen die Werte als String z.B. 35.99 (mit Punktscheinbar kann VS das nicht als Währung erkennen. Aber auch 35,99 (MIT Komma ändert nichtsMuss ich in der Table das Feld als Decimal führen? oder gibt es noch andere Möglichkeiten Die Währungseinheit anzuzeigen?
    Grüße
    Norbert
    @strzata Pack die Daten in eine DataTable, Währungswerte vom Type Decimal.
    Die Formatierung der Ausgabe erfolgt, wie von @VB1963 verwiesen, im DataGridViewCellFormatting-Event des DGV:

    Visual Basic-Quellcode

    1. Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    2. If e.Value Is Nothing Then
    3. Return
    4. End If
    5. Dim value As Decimal = CType(e.Value, Decimal)
    6. e.Value = value.ToString("c")
    7. End Sub
    Du musst nur noch über e.ColumnIndex und e.RowIndex Deine Zelle(n) identifizieren.
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke, ja das war nicht schwer, aber glücklich sind wir damit nicht, wenn der Wert im Fomatting geändert wird, wird ein erneuters Formatting ausgelöst und das Grid flackert.
    Wir iterieren jetzt die Rows in der DT bevor wir die DataSource des DGV setzen, müssen wir eh machen, weil einige Spalten vorher noch teilw. komlpiziert berechnet werden müssen. Das will ich nicht im Grid machen und da müsste ich die Zeilen auch einzeln durchlaufen, würde auch nicht weniger kosten.

    strzata schrieb:

    wird ein erneuters Formatting ausgelöst und das Grid flackert.
    Kannst Du mal ein bereinigtes Testprojekt posten, das diesen Effekt reproduziert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    strzata schrieb:

    wenn der Wert im Fomatting geändert wird, wird ein erneuters Formatting ausgelöst und das Grid flackert.
    Diesen Satz verstehe ich nicht. Im Formatting-Event wird kein Wert verändert, sondern nur der Wert zur Anzeige formatiert ausgegeben... Da habt ihr sicher etwas vermurkst!
    Wie schon mein Vorposter geschrieben hat, da braucht's jetzt ein kleines Testprojekt zur Aufklärung!

    strzata schrieb:

    weil einige Spalten vorher noch teilw. kompliziert berechnet werden müssen.
    Das klingt nach berechneten Spalten (DataExpressions: Filter und berechnete Spalten im Dataset)
    Danke, ja das war nicht schwer, aber glücklich sind wir damit nicht, wenn der Wert im Fomatting geändert wird, wird ein erneuters Formatting ausgelöst und das Grid flackert.
    Wir iterieren jetzt die Rows in der DT bevor wir die DataSource des DGV setzen, müssen wir eh machen, weil einige Spalten vorher noch teilw. komlpiziert berechnet werden müssen.
    Ja bestimmt haben wir Murks fabriziert.Im Formatting lesen wir den Wert der Zelle und hängen das € Zeichen an (value&= "€" mit nem Testprojekt wird es leider jetzt erstmal nichts

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

    strzata schrieb:

    wird ein erneuters Formatting ausgelöst und das Grid flackert.
    :?: :?: :?:
    Hatten wir doch eben.

    RodFromGermany schrieb:

    Kannst Du mal ein bereinigtes Testprojekt posten, das diesen Effekt reproduziert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke, ja das war nicht schwer, aber glücklich sind wir damit nicht, wenn der Wert im Fomatting geändert wird, wird ein erneuters Formatting ausgerlöst und das Grid flackert.
    Wir iterieren jetzt die Rows in der DT bevor wir die DataSource des DGV setzen, müssen wir eh machen, weil einige Spalten vorher noch teilw. komlpiziert berechnet werden müssen.
    Ja bestimmt haben wir Murks fabriziert.Im Formatting lesen wir deen Wert der Zelle und hämgem das € Zeichen an (value&= "€"service@dentolo.de.
    Hatten wir doch eben.
    Sorry irgendwie bockt mein Editor beim Antworten, wenn ich ein Zitat einfügen will,
    da ist aus Versehen ein altes Posting reingerutscht. Wie geht das richtig, wenn man eine Antwortschreiben will und dabei ein Zitat verwenden will?

    strzata schrieb:

    wenn man eine Antwortschreiben will und dabei ein Zitat verwenden will?
    Zitat markieren, "Auswahl zitieren" drücken, neuen Post erstellen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!