C# 控制台应用程序输出颜色字体[更正版]
首先感谢院子里的“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代码如下:
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# 控制台应用程序输出颜色字体[更正版]相关推荐
- C++ 输出颜色字体
C++ 输出颜色字体 #include <iostream> #include <string>using namespace std;int main(){cout < ...
- bash输出颜色字体
转自:http://www.2cto.com/os/201504/393360.html #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色30-37 echo -e " ...
- shell脚本输出颜色字体
#输出特效格式控制: \033[0m 关闭所有属性 \033[1m 设置高亮度 \03[4m 下划线 \033[5m 闪烁 \033[7m 反显 \033[8m 消隐 \033[30m -- \033 ...
- Createprocess控制台程序输出重定向
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在Win ...
- IDEA控制台输出彩色字体和彩色背景
今天休息的时候突发奇想在平时写代码的时候报错的话,控制台会输出红色字体.然后我就在想控制台能不能输出其他颜色的字体❓.在好奇心的驱使下经过搜索发现IDEA控制台是可以输出彩色字体的✨,甚至背景颜色都可 ...
- Pycharm的相关配置:改字体样式和大小、更改图片背景、更改控制台输出的字体颜色
文章目录 Pycharm的相关配置:改字体样式和大小.更改图片背景.更改控制台输出的字体颜色 一.pycharm更改字体样式和大小 二.pycharm更改图片背景 三.pycharm更改控制台输出的字 ...
- Python控制台输出颜色,让你的Python程序更加生动活泼
Python控制台输出颜色,让你的Python程序更加生动活泼 在编写Python程序时,我们通常需要使用到控制台输出.而控制台输出的内容通常是黑白的,缺乏生动和互动性.那么如何让Python程序在控 ...
- java 控制台输出设置字体颜色
设置:Window-preferences-run/debug-console 使用 System.out.println System.err.println 实现输出颜色区分
- MFC应用程序中添加控制台窗口---debug输出窗口
在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...
最新文章
- 苹果AirTag遭破解,网友放出“教程”,可重写程序,可能成为恶意跟踪“神器”...
- 库克笑了,说要给股东多分红:换了M1后Mac销售额增长70%,iPhone也增长66%
- 刨根问底:C++中宽字符类型(wchar_t)的编码一定是Unicode?长度一定是16位?
- 分享九款构建响应式网站的最佳PHP框架
- 递归函数实现二分查找法
- (转)三层相关案例(及常见的错误)
- 用人工智能来喂鱼:喂多少智能算法说了算
- 桂林电子科技大学计算机信息管理专业排名,桂林电子科技大学信息科技学院优势专业排名,2021年桂林电子科技大学信息科技学院最好的专业排名...
- 【笔记】具有O-DU和O-RU的eNB / gNB架构
- 【转载】SQL 标量函数-----字符串函数 之二 去空格函数 LTRIM() 、RTRIM()
- 对即时通讯个人信息的一点想法
- 计算机基础知识整理 世上最全,IT小白必看:计算机基础知识整理大全
- 【CSDN雇主招聘】深信服科技带着高薪岗位JD和公司周边来啦
- 大数据和人工智能AI的联系和区别
- 元宇宙游戏项目:Decentraland(治理通证:MANA)
- C语言修饰词之violate使用
- My97pickerdate设置默认开始日期为当天
- JavaScript 实时监听input 中值变化
- 面试官:介绍一下你简历中的项目,细讲一点,附项目实战
- 前端针对不同技术的常用UI框架和图表