侧边栏壁纸
  • 累计撰写 185 篇文章
  • 累计创建 77 个标签
  • 累计收到 17 条评论

目 录CONTENT

文章目录

C#的控制台程序中如何设置命令行窗体的字体颜色,窗口宽度和高度,光标行数

码峰
2022-09-12 / 0 评论 / 0 点赞 / 1,049 阅读 / 567 字 / 正在检测是否收录...
广告 广告

摘要

在C#的控制台程序中,经常需要通过代码设置控制台(命令行)窗口的字体颜色,窗口宽度和高度,光标的函数等属性,获取获取控制台支持的背景色,前景色等,下面将给出一些示例代码和运行结果。

设置窗口宽度和高度

C#控制台程序设置命令行窗口的宽度和高度,以及标题等属性的代码如下:

static void Main(string[] args)
{
     Console.WriteLine(Console.WindowHeight);
     Console.WriteLine(Console.BufferHeight);
     Console.ReadKey();
     Console.Title = "Test";//设置窗口标题
     Console.WindowWidth = 120;
     Console.BufferHeight = 1000;
     Console.WriteLine(Console.WindowWidth);
     Console.WriteLine(Console.WindowHeight);
     Console.WriteLine("---------------------");
     Console.WriteLine(Console.BufferWidth);
     Console.WriteLine(Console.BufferHeight);
     Console.ReadKey();
}

以上代码运行结果如下图所示:
image-1663054641679

设置窗口字体颜色和背景颜色

C#控制台程序设置命令行窗口的字体颜色和背景颜色属性的代码如下:

static void Main(string[] args)
{
      Console.Title = "Test";
      Console.BackgroundColor = ConsoleColor.Blue; //设置背景色
      Console.ForegroundColor = ConsoleColor.White; //设置前景色,即字体颜色
      Console.WriteLine("第一行白蓝.");
      Console.ResetColor(); //将控制台的前景色和背景色设为默认值
      Console.BackgroundColor = ConsoleColor.Green;
      Console.ForegroundColor = ConsoleColor.DarkGreen;
      string str = "第三行 绿暗绿";
      Console.WriteLine(str.PadRight(Console.BufferWidth - (str.Length % Console.BufferWidth))); //设置一整行的背景色
      Console.ResetColor();
      Console.ReadKey();
}

以上C#控制台程序设置命令行窗口的字体颜色和背景颜色属性的代码运行结果如下图所示:
image-1663054837464

获取console中支持的背景色及前景色

在C#中获取控制台(Console)支持的背景色和前景色的代码如下:

    static void ShowColor()
    {
        //显示出console中支持的背景色及前景色
        Type type = typeof(ConsoleColor);
        Console.ForegroundColor = ConsoleColor.White;
        foreach (string name in Enum.GetNames(type))
        {
        Console.BackgroundColor = (ConsoleColor)Enum.Parse(type, name);
        Console.WriteLine(name);
        }

        Console.BackgroundColor = ConsoleColor.Black;
        foreach (string name in Enum.GetNames(type))
        {
        Console.ForegroundColor = (ConsoleColor)Enum.Parse(type, name);
        Console.WriteLine(name);
        }

        foreach (string bc in Enum.GetNames(type))
        {
        Console.BackgroundColor = (ConsoleColor)Enum.Parse(type, bc);
        foreach (string fc in Enum.GetNames(type))
        {
            Console.ForegroundColor = (ConsoleColor)Enum.Parse(type, fc);
            Console.WriteLine("bc=" + bc + ",fc=" + fc);
        }
        Console.WriteLine();
        }
    }
    static void Main(string[] args)
    {
        Console.Title = "Test";
        ShowColor();
        int m = Console.CursorTop;//查看当前行号Console.BufferHeight 
        ShowColor();
        int n = Console.CursorTop;
        ShowColor();
        int o = Console.CursorTop;
        Console.ReadKey();
    }

console-color

0
广告 广告

评论区