Autor Beitrag
Csharp-programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mi 07.10.15 17:27 
Hallo Leute. Ich habe eine TextBox, in der der Benutzer die HTML- Farbe eingeben kann (z.B. #FF00FF). Die TextBox soll ein TextChanged Ereignis haben. Wenn sich nun der Inhalt der TextBox ändern, soll sich auch die Farbe eines Buttons in die jenige Farbe ändern. Mit dem ColorTranslator habe ich schon etwas rumexperimentiert - vergebens. Könntet ihr mir vielleicht helfen?

MFG :)
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 07.10.15 19:07 
Hallo,

was hast du denn probiert (und was hat dabei nicht geklappt)?
Der Code ist eigentlich ganz einfach, s z.B. Converting HTML Color Code to System.Drawing.Color
ausblenden C#-Quelltext
1:
Color color = ColorTranslator.FromHtml(textBox.Text);					

Oder besteht das Problem eher darin, daß die Button Color nicht richtig gesetzt wird, s. z.B. How to get Color from Hexadecimal color code using .NET?
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mi 07.10.15 19:52 
Genau so wollte ich es. Es haut hin, doch ich habe vor der TextBox ein Label mit dem Text "#". Der Benutzer muss nun den Hashtag nicht mehr setzten. In die HTML- Datei fügt das Programm dann individuell ein Hashtag an. Kann man es machen, dass man das # irgendwie automatisch mit intigriert? Also dass man nur den Hexadezimalcode schreibt und das Programm gleich vorn den Hashtag anschließt
Stundenplan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128
Erhaltene Danke: 32

Win 7
Delphi 7 Pers., C# (VS 2010 Express)
BeitragVerfasst: Mi 07.10.15 20:15 
Meinst du per Stringverkettung, also '#' + textBox.Text?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 07.10.15 23:38 
Zitat:
Der Benutzer muss nun den Hashtag nicht mehr setzten

Leichte Twitterverwirrung :gruebel: Nur weil etwas ein Doppelkreuz(Hash) enthält ist es noch lange kein HashTag. Das wäre genauso als würde man behaupten weil etwas ein @ enthält muss es eine EMail Adresse sein.
Zitat:
Also dass man nur den Hexadezimalcode schreibt und das Programm gleich vorn den Hashtag anschließt

Wenn es tatsächlich immer nur der Hexcode ist dann
ausblenden C#-Quelltext
1:
Color color = Color.FromArgb(Convert.ToInt32(textBox.Text, 16));					

Aber bedenke wenn du vorher ColorTranslator.FromHtml benutzen wolltest html kennt auch benannte Farben du hättest genauso gut Blue, Red etc. angeben können. Auch das wäre ein Farbe in Html nicht nur das mit dem Hash am Anfang.

Wenn du es wirklich gut machen willst prüfst du dann auch ob das was in der TextBox auch wirklich was gültiges ist. Z.b. in dem du Int32.TryParse verwendest anstatt so wie ich im Beispiel der Einfachheit halber Convert.ToInt32. Und vorher ob der User vielleicht nicht doch selbst denn Hash eingegeben hat.