首先感谢院子里的“yanxinchen”,之前的方法是通过c#调用系统api实现的,相比之下我的有点画蛇添足了,哈哈。

最佳解决方案的代码:

static void Main(string[] args){    Console.ForegroundColor = ConsoleColor.Green;    Console.WriteLine("Hello, color text!");    Console.ForegroundColor = ConsoleColor.Red;    Console.WriteLine("Hello, color text!");    Console.ReadKey();}

效果如图:

=================================================================================

我之前的代码如下(已过时):

控制台应用程序字体本身不能输出带颜色的字体,所有就需要调用系统的api实现,下面是一个封装好的类,另赋调用的方法,使用起来很方便,效果如图:

封装调用系统api的类ConsoleColor.cs代码如下:

ConsoleColor.cs

using System.Runtime.InteropServices;

namespace Test{    /// Summary description for ConsoleColor.    public class ConsoleColor    {        private int hConsoleHandle;        private COORD ConsoleOutputLocation;        private CONSOLE_SCREEN_BUFFER_INFO ConsoleInfo;        private int OriginalColors;

        private const int STD_OUTPUT_HANDLE = -11;

        [DllImport("kernel32.dll", EntryPoint = "GetStdHandle", SetLastError = true,                        CharSet = CharSet.Auto,                        CallingConvention = CallingConvention.StdCall)]        private static extern int GetStdHandle(int nStdHandle);

        [DllImport("kernel32.dll", EntryPoint = "GetConsoleScreenBufferInfo",                        SetLastError = true, CharSet = CharSet.Auto,                        CallingConvention = CallingConvention.StdCall)]        private static extern int GetConsoleScreenBufferInfo(int hConsoleOutput,                         ref CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);

        [DllImport("kernel32.dll", EntryPoint = "SetConsoleTextAttribute",                        SetLastError = true, CharSet = CharSet.Auto,                        CallingConvention = CallingConvention.StdCall)]        private static extern int SetConsoleTextAttribute(int hConsoleOutput,                                 int wAttributes);

        public enum Foreground        {            Blue = 0x00000001,            Green = 0x00000002,            Red = 0x00000004,            Intensity = 0x00000008        }

        public enum Background        {            Blue = 0x00000010,            Green = 0x00000020,            Red = 0x00000040,            Intensity = 0x00000080        }

        [StructLayout(LayoutKind.Sequential)]        private struct COORD        {            short X;            short Y;        }

        [StructLayout(LayoutKind.Sequential)]        private struct SMALL_RECT        {            short Left;            short Top;            short Right;            short Bottom;        }

        [StructLayout(LayoutKind.Sequential)]        private struct CONSOLE_SCREEN_BUFFER_INFO        {            public COORD dwSize;            public COORD dwCursorPosition;            public int wAttributes;            public SMALL_RECT srWindow;            public COORD dwMaximumWindowSize;        }

        // Constructor.        public ConsoleColor()        {            ConsoleInfo = new CONSOLE_SCREEN_BUFFER_INFO();            ConsoleOutputLocation = new COORD();            hConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);            GetConsoleScreenBufferInfo(hConsoleHandle, ref ConsoleInfo);            OriginalColors = ConsoleInfo.wAttributes;        }

        public void TextColor(int color)        {            SetConsoleTextAttribute(hConsoleHandle, color);        }

        public void ResetColor()        {            SetConsoleTextAttribute(hConsoleHandle, OriginalColors);        }    }}

在Main方法的调用代码如下:

ConsoleColor TextChange = new ConsoleColor();Console.WriteLine("Original Colors");Console.WriteLine("Press Enter to Begin");Console.ReadLine();TextChange.TextColor((int)ConsoleColor.Foreground.Green +                     (int)ConsoleColor.Foreground.Intensity);Console.WriteLine("THIS TEXT IS GREEN");Console.WriteLine("Press Enter to change colors again");Console.ReadLine();TextChange.TextColor((int)ConsoleColor.Foreground.Red +                     (int)ConsoleColor.Foreground.Blue +                     (int)ConsoleColor.Foreground.Intensity);Console.WriteLine("NOW THE TEXT IS PURPLE");Console.WriteLine("Press Enter to change colors again");Console.ReadLine();TextChange.TextColor((int)ConsoleColor.Foreground.Blue +                     (int)ConsoleColor.Foreground.Intensity +                     (int)ConsoleColor.Background.Green +                     (int)ConsoleColor.Background.Intensity);Console.WriteLine("NOW THE TEXT IS BLUE AND BACKGROUND OF IT IS GREEN");Console.WriteLine("Press Enter change everything back to normal");Console.ReadLine();TextChange.ResetColor();Console.WriteLine("Back to Original Colors");Console.WriteLine("Press Enter to Terminate");Console.ReadLine();

C# 控制台应用程序输出颜色字体[更正版]相关推荐

  1. C++ 输出颜色字体

    C++ 输出颜色字体 #include <iostream> #include <string>using namespace std;int main(){cout < ...

  2. bash输出颜色字体

    转自:http://www.2cto.com/os/201504/393360.html #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色30-37 echo -e " ...

  3. shell脚本输出颜色字体

    #输出特效格式控制: \033[0m 关闭所有属性 \033[1m 设置高亮度 \03[4m 下划线 \033[5m 闪烁 \033[7m 反显 \033[8m 消隐 \033[30m -- \033 ...

  4. Createprocess控制台程序输出重定向

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在Win ...

  5. IDEA控制台输出彩色字体和彩色背景

    今天休息的时候突发奇想在平时写代码的时候报错的话,控制台会输出红色字体.然后我就在想控制台能不能输出其他颜色的字体❓.在好奇心的驱使下经过搜索发现IDEA控制台是可以输出彩色字体的✨,甚至背景颜色都可 ...

  6. Pycharm的相关配置:改字体样式和大小、更改图片背景、更改控制台输出的字体颜色

    文章目录 Pycharm的相关配置:改字体样式和大小.更改图片背景.更改控制台输出的字体颜色 一.pycharm更改字体样式和大小 二.pycharm更改图片背景 三.pycharm更改控制台输出的字 ...

  7. Python控制台输出颜色,让你的Python程序更加生动活泼

    Python控制台输出颜色,让你的Python程序更加生动活泼 在编写Python程序时,我们通常需要使用到控制台输出.而控制台输出的内容通常是黑白的,缺乏生动和互动性.那么如何让Python程序在控 ...

  8. java 控制台输出设置字体颜色

    设置:Window-preferences-run/debug-console 使用 System.out.println  System.err.println 实现输出颜色区分

  9. MFC应用程序中添加控制台窗口---debug输出窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

最新文章

  1. 苹果AirTag遭破解,网友放出“教程”,可重写程序,可能成为恶意跟踪“神器”...
  2. 库克笑了,说要给股东多分红:换了M1后Mac销售额增长70%,iPhone也增长66%
  3. 刨根问底:C++中宽字符类型(wchar_t)的编码一定是Unicode?长度一定是16位?
  4. 分享九款构建响应式网站的最佳PHP框架
  5. 递归函数实现二分查找法
  6. (转)三层相关案例(及常见的错误)
  7. 用人工智能来喂鱼:喂多少智能算法说了算
  8. 桂林电子科技大学计算机信息管理专业排名,桂林电子科技大学信息科技学院优势专业排名,2021年桂林电子科技大学信息科技学院最好的专业排名...
  9. 【笔记】具有O-DU和O-RU的eNB / gNB架构
  10. 【转载】SQL 标量函数-----字符串函数 之二 去空格函数 LTRIM() 、RTRIM()
  11. 对即时通讯个人信息的一点想法
  12. 计算机基础知识整理 世上最全,IT小白必看:计算机基础知识整理大全
  13. 【CSDN雇主招聘】深信服科技带着高薪岗位JD和公司周边来啦
  14. 大数据和人工智能AI的联系和区别
  15. 元宇宙游戏项目:Decentraland(治理通证:MANA)
  16. C语言修饰词之violate使用
  17. My97pickerdate设置默认开始日期为当天
  18. JavaScript 实时监听input 中值变化
  19. 面试官:介绍一下你简历中的项目,细讲一点,附项目实战
  20. 前端针对不同技术的常用UI框架和图表

热门文章

  1. Shell脚本——入门
  2. Docker原理之CGroups
  3. 问题 A: 深度学习
  4. 大虾对51单片机入门的经验总结
  5. CSS深入理解学习笔记之vertical-align
  6. bat 批处理 常用命令和乱码问题
  7. java api项目配置统一的错误返回json提示
  8. 使用visio 提示此UML形状所在的绘图页不是UML模型图的一部分 请问这个问题怎么解决?...
  9. ORA-29702:error occurred in Cluster Group Service operation错误解决
  10. 中小企业信息化及市场