253 votes

Est-il possible d'écrire dans la console en couleur dans .NET ?

En écrivant un petit outil de ligne de commande, ce serait bien de sortir dans différentes couleurs. Est-ce possible ?

341voto

Mark Byers Points 318575

Oui. Voir cet article. Voici un exemple à partir de là :

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");

enter image description here

151voto

Darin Dimitrov Points 528142
class Program
{
    static void Main()
    {
        Console.BackgroundColor = ConsoleColor.Blue;
        Console.ForegroundColor = ConsoleColor.White;
        Console.WriteLine("White on blue.");
        Console.WriteLine("Another line.");
        Console.ResetColor();
    }
}

Emmené d'ici.

67voto

Roger Hill Points 935

Les commentaires ci-dessus sont des réponses solides, mais notez qu'ils ne sont pas sûrs. Si vous écrivez sur la console avec plusieurs threads, changer les couleurs ajoutera une condition de course qui peut créer une sortie étrange. Il est cependant simple à corriger :

public class ConsoleWriter
{
    private static object _MessageLock= new object();

    public void WriteMessage(string message)
    {
        lock (_MessageLock)
        {
            Console.BackgroundColor = ConsoleColor.Red;
            Console.WriteLine(message);
            Console.ResetColor();
        }
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X