I want to write color text to the Visual Studio output window from c#. I want to output red code from my unit tests.
I found this question while trying to figure out why some of the lines of text in my Visual Studio 2017 Output window are colored red, and how I could accomplish the same thing.
I found that I was able to get red text by writing out a line which included:
Error:
" (Error, colon, followed by a space)Error:
" (Error, colon, followed by a space)Error *
" (Error, followed by a space and then some other character)An example:
Debug.WriteLine("Error: This line will be red Error: Error Jeff");
Edited The code below works to display output in Windows Console, not to Visual Studio Output window (thanks @AnthonyLambert for correcting me).
Console.ForegroundColor = ConsoleColor.Magenta; //Choose from the Enum
Console.WriteLine("This message is to be in Magenta!");
Console.ResetColor();//Reset to default
Actually there are extensions for that. I use the lite (free) version of VSCommands for Visual Studio 2010. With the Pro version a regex could be set to make the colouring. In the lite version I add "warning" text to the debug message and it is written in light brown.
Far as I know, you can't do that. You can change the Console's font colour, but it has no effect on Visual Studio's output window.
The only way to change the text colour there is through Tools->Options->Fonts and Colors, and that affects all the text that is sent to the window.
SetConsoleTextAttribute(hConsole, x)
Where k is an integer color value and hConsole is a standard output handle.
More Here - easier commands
As far as I know, the output window in Visual Studio is a "simple textbox" type control that doesn't support colored text.