Select case GetType trifft nicht

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von BlueLagoonX.

    Select case GetType trifft nicht

    Moinmoin,

    ich bin dabei mir eine Funktion zu erstellen, welche mir DGV Columns je nach Abhängigkeit des Datentypes formatiert.
    Decimal als Währung, alle anderen Zahlen als Zahl mit tausender Trennzeichen.

    Schaut soweit so aus ...

    Quellcode

    1. Public Shared Sub FormatColumn(ByRef Column As DataGridViewColumn)
    2. Try
    3. If IsNothing(Column) Then Exit Sub
    4. With Column
    5. Select Case .ValueType.GetType
    6. Case GetType(Int32), GetType(Integer), GetType(Double), GetType(Single)
    7. .DefaultCellStyle.Format = "n"
    8. Case GetType(Decimal)
    9. .DefaultCellStyle.Format = "c"
    10. Case Else
    11. MsgBox(.ValueType.Name " # " & GetType(Int32).Name)
    12. Exit Sub
    13. End Select
    14. End With
    15. Catch ex As Exception
    16. MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical)
    17. End Try
    18. End Sub


    Das Problem ist, dass der Datentyp im Select Case grundsätzlich ins Case Else gedrückt wird.
    Ich habe es auch mit .ValueType.GetType.Name und in den Cases mit GetType(Int32).Name versucht, bringt aber auch nichts.

    Das Case Else Result habe ich in MsgBox ausgegeben ...

    Quellcode

    1. MsgBox(.ValueType.Name & " # " & GetType(Int32).Name)


    Ergibt Int32 # Int32, Ausgabe erscheint aber im Case Else

    Was übersehe ich?

    Freundliche Grüße :)
    Du verwendest ValueType.GetType und nicht ValueType in deinem Select. Gib doch mal ValueType.GetType().Name in deiner MessageBox aus...
    Außerdem verwende bitte MessageBox.Show und nicht MsgBox
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---