Anzeige

 Windows Form Hintergrund Farbcode aus Text Datei laden


werner_sg

Erfahrenes Mitglied
#1
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
 
#2
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).
 

werner_sg

Erfahrenes Mitglied
#3
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:)
 

werner_sg

Erfahrenes Mitglied
#4
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
 

werner_sg

Erfahrenes Mitglied
#5
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:

werner_sg

Erfahrenes Mitglied
#6
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
 
#7
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
 

Spyke

Capoeirista
Premium-User
#8
ü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.
 
Anzeige
Anzeige