Textfarbe ändern

Hallo zämmä

Ich versuche verzweifelt meine Textfarbe zu ändern :frowning:

Wenn ich im VB Console den Ausdruck

SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE),0X00C);

eingebe, verändert sich wohl die Farbe des Textes, übernimmt sie jedoch für das ganze Programm, auch wenn ich danach

SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE),0X007);

setze! Was mache ich falsch? Muss ich die Farbe in der Funktion setzen und zurücksetzen oder im Hauptprogramm?

Gruss Renato

Hi Renato

Ich versuche verzweifelt meine Textfarbe zu ändern :frowning:

mach das doch mit Console.ForegroundColor

SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE),0X00C);
SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE),0X007);

Soweit ich das weiß gibt es in VB.NET keine Semikolons nach einem Befehl

Ich schreib noch zwei kleine Beispiele ans Ende.

Lg der einzigware

Hier zunächst eins wo du(als Programmierer) die Farben bestimmst

Module Farbwechsel\_durch\_den\_Programmierer
 Sub Main()
 Console.ForegroundColor = ConsoleColor.Green
 'Die Konsolenausgabe wird in grün geschrieben
 Console.BackgroundColor = ConsoleColor.Red
 'Nur das Hallo wird Rot hinterlegt
 Console.WriteLine("Hallo")
 Console.ForegroundColor = ConsoleColor.Magenta
 'Die Konsolenausgabe wird in magenta geschrieben
 Console.BackgroundColor = ConsoleColor.Blue
 'Nur das Hallo zum 2. wird Blau hinterlegt
 Console.WriteLine("Hallo zum 2.")
 Console.ReadLine()
 End Sub
End Module

Die Hintergrund Farbe ist immer nur für den aktuellen Text

Jetzt noch eins wo der du(als Benutzer) die Farben bestimmen kannst

Module farbwechsel\_durch\_den\_Benutzer
 Sub Farbe()
 'Hier werden die Farben zur Auswahl gestellt
 Console.WriteLine("Wählen Sie eine dieser Farben durch Eingabe der vorstehenden Zahl")
 Console.WriteLine("0 Schwarz")
 Console.WriteLine("1 Dunkelblau")
 Console.WriteLine("2 Dunkelgrün")
 Console.WriteLine("3 Dunkelcyan")
 Console.WriteLine("4 Dunkelrot")
 Console.WriteLine("5 Dunkelmagenta")
 Console.WriteLine("6 Dunkelgelb")
 Console.WriteLine("7 Grau")
 Console.WriteLine("8 Dunkelgrau")
 Console.WriteLine("9 Blau")
 Console.WriteLine("10 Grün")
 Console.WriteLine("11 Cyan")
 Console.WriteLine("12 Rot")
 Console.WriteLine("13 Magenta")
 Console.WriteLine("14 Gelb")
 Console.WriteLine("15 Weiß")
 Dim a As Integer = Convert.ToInt32(Console.ReadLine()) 'Hier wird die Zahl eingelesen
 Select Case a
 Case 1 To 15
 Console.ForegroundColor = a 'Hier wird die Farbe duch die Zahl gesetzt
 Case Else 'Bei einer Fehleingabe wird die Console gelöscht und Farbe() noch einmal aufgerufen
 Console.Clear()
 Farbe()
 End Select
 End Sub

 Sub Main()
 Farbe()
 Console.WriteLine("Hallo") 'Hier wird der Text in der gewählten Farbe dargestellt
 Console.ReadLine()
 End Sub
End Module

Ich hoffe die Beispiele helfen dir