控制台文本填充没有背景颜色

时间:2015-12-03 20:27:56

标签: c# console-application padding background-color

我有一个循环写入一个字符串10次,每次都有一个更大的填充。 它还将每一行的背景颜色设置为深黄色。

int x = 5;
for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        Console.BackgroundColor = ConsoleColor.DarkYellow;
    }
    else
    {
        Console.ResetColor();
    }

    x = x + 1;
    string str = "word";
    Console.WriteLine(str.PadLeft(x));
}

问题是我的深黄色行从行填充的开始一直被着色。但我只希望这个词本身是没有空格的深黄色。

2 个答案:

答案 0 :(得分:2)

这只是在没有任何测试的情况下被黑客攻击,但应该知道如何使其工作:

int x = 5;
for (int i = 1; i <= 10; i++)
{
    Console.ResetColor();
    x = x + 1;
    Console.Write("".PadLeft(x));
    if (i % 2 == 0)
        Console.BackgroundColor = ConsoleColor.DarkYellow;

    string str = "word";
    Console.WriteLine(str);
}

关键的变化是你不需要一次写下整行。您可以使用Console.Write()来编写没有背景颜色的填充。然后用Console.WriteLine()结束,写下单词+换行符。

答案 1 :(得分:2)

您应首先编写没有背景颜色的空格,然后只编写具有所选背景颜色的单词:

string