Windows Form Hintergrund Farbcode aus Text Datei laden

werner_sg

Erfahrenes Mitglied
Hallo

in meiner VB.Net Anwendung habe ich alle eventuell mal zu ändernden Daten extern eingebunden.

Jetzt würde ich auch noch gerne den Background Farbcode in einer text Datei speichern und aus dieser laden.

Ist sowas umsetzbar? wenn ja dann würde ich gerne die Lösung erfahren :)

Danke
 
Hi

vermutlich ja - um dir eine Zeile zum Setzen geben zu können wär das Framework allerdings hilfreich. Winforms, WPF, usw.?

Dann zB. Hexwerte für RGB in die Datei schreiben (FFFFFF ist reines Weiß usw.), das auslesen, und zB. mit Color.FromArgb ein Objekt daraus machen (vorausgesetzt das Framework nimmt ein Colorobjekt).
 
guten Morgen Danke für den Hinweis, arbeite wie oben in der Überschrift mit WindowsForm VB.Net.

Aber habe ja jetzt einen Ansatz mal schauen was ich bei Google dazu finde, auf jeden Fall schon mal Danke:)
 
So habe folgendes dazu gefunden:

Code:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim customColor As Color = Color.FromArgb(255, 0, 125, 64)
        Me.BackColor = customColor
    End Sub

Muss jetzt nur noch schauen wie ich die Werte aus einer Text Datei laden kann
 
Code:
        Dim fileReader As String
        fileReader = System.IO.File.ReadAllText("C:/umfrage/texte/color.txt")
        Dim customColor As Color = Color.FromArgb(fileReader)
        Me.BackColor = customColor

Damit liest er die Datei richtig aus will auch den Wert schreiben Meckert dann aber:
System.InvalidCastException: "Ungültige Konvertierung von der Zeichenfolge 255, 0, 125, 64 in Typ Integer."

klar Ihn stören die Komma :) wie kann ich dem abhilfe schaffen?
 
Zuletzt bearbeitet:
So für alle die auch an der Lösung interessiert sind

statt Color.FromARGB einfach Color.FromName nehmen und dann den Farbnamen eingeben zum Beispiel red
 
Für die Vollständigkeit, bei der anderen Variante müsste man den String selber zerlegen und Hex-Werte zu ints umwandeln.
FromName ist deutlich einfacher, ist mir früher nur nicht eingefallen :D
 
übrigens:
mittels Color.ToArgb() bekommt man den ARGB Wert auch als gesamten einzelnen Int Wert, diesen numerischen Wert kann man mittels Color.FromArgb ebenfalls einlesen.
 
Zurück