AnthonyLambert
AnthonyLambert

Reputation: 8830

How do I write color text to the Visual Studio output window from c#?

I want to write color text to the Visual Studio output window from c#. I want to output red code from my unit tests.

Upvotes: 11

Views: 14158

Answers (6)

yibe
yibe

Reputation: 378

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

Upvotes: -2

Felix D.
Felix D.

Reputation: 5103

In addition to Jeff Roe I've managed to get this:

Warnings: Console.WriteLine($"Warning: Warning '{message}'");

Errors: Console.WriteLine($"Error: Error '{message}'");

enter image description here

Sadly I could not figure out how to get green output. If any1 could add this I would be super happy !

Upvotes: 7

Jeff Roe
Jeff Roe

Reputation: 3206

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:

  • an instance of "Error:" (Error, colon, followed by a space)
  • (other characters can go here)
  • another instance of "Error:" (Error, colon, followed by a space)
  • (other characters can go here)
  • followed by 1 instance of "Error *" (Error, followed by a space and then some other character)
  • (other characters can go here)

An example:

Debug.WriteLine("Error: This line will be red Error: Error Jeff");

Upvotes: 8

TrueY
TrueY

Reputation: 7610

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.

Upvotes: 3

Ten Ton Gorilla
Ten Ton Gorilla

Reputation: 268

SetConsoleTextAttribute(hConsole, x)

Where k is an integer color value and hConsole is a standard output handle.

More Here - easier commands

Upvotes: -2

Scott Dorman
Scott Dorman

Reputation: 42516

As far as I know, the output window in Visual Studio is a "simple textbox" type control that doesn't support colored text.

Upvotes: -1

Related Questions