Der Wert vom Typ x kann nicht in x konvertiert werden

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

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

    Der Wert vom Typ x kann nicht in x konvertiert werden

    Hallo zusammen,

    ich habe ein kleines Problem beim Aufruf einer Funktion und benötige eure Hilfe.

    Wegen des Aufbaus meiner UI habe ich für dieses Projekt auf WPF umgestellt (ist meine 1. WPF) und importiere einige Code-Teile aus einer Windows-Forms Anwendung.

    Zum aktuellen Problem:
    Ich habe 2 Module: modSubs (Methoden & Funktionen) und modDecl (Konstanten & Variablen)
    Option Explicit On & Option Strict On sind gesetzt.

    Ich habe in modSubs eine Funktion, die mir die Color aus einem angegebenen RGB-String zurük gibt.

    VB.NET-Quellcode

    1. Public Function RgbStrToColor(ByVal RGBString As String) As Color
    2. Dim c As Color
    3. If Not String.IsNullOrEmpty(RGBString) Then
    4. Dim arrRGB() As String = RGBString.Split(","c)
    5. c = Color.FromArgb(Integer.Parse(arrRGB(0)), Integer.Parse(arrRGB(1)), Integer.Parse(arrRGB(2)))
    6. Return c
    7. End If
    8. End Function

    Rufe ich die Funktion mit folgender Zeile auf, bekomme ich die Fehlermeldung "Der Wert vom Typ 'Color' kann nicht in 'Color' konvertiert werden."

    VB.NET-Quellcode

    1. Public P_BackColorMain As Color = RgbStrToColor(C_DEF_BACKCOLOR_MAIN)

    In meiner Windows-Forms Anwendung aus der ich den Prgrammteil herauskopiert habe funktioniert der Aufruf Fehlerfrei.
    Mache ich den gleichen Aufruf direkt in modSubs, in der auch die Funktion drinnen ist, funktioniert der Aufruf ebenfalls einwandfrei.

    In G* und hier habe ich nichts gefunden, was mir weiterhelfen konnte und hoffe dass Ihr eine Idee habt an was das liegen kann. Muss ich evtl. in den Einstellungen meiner WPF-App etwas Einstellen damit der Zugriff funktioniert?

    Viele Grüße, Michl

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

    Da werden wohl Color-Typen aus verschiedenen Namespaces existieren. Der eine ist aus System.Drawing, der andere … tja. Entferne alle importierten Namespaces und der Compiler wird's Dir verraten.
    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.