打印后,如何在控制台应用程序中更改文本颜色?

杜普·伯格

我知道这个问题可能牵强,但如果可以使用此功能,那就太好了。我想在播放器书写时更改文本的颜色,因此,如果键入某些关键字,它们将更改为某种颜色。

我知道您可以更改光标的位置,但是我不知道这对更改颜色是否有帮助。我也知道您可以执行Console.Clear,但如果可能的话,我不想这样做,因为从那时起,我必须保存字符串并重新编写所有字符串,并且该字符串不适用于我的程序。

简短的回答:通常不,因为标准输出历来是一种只写介质(想想1960年代的电传打印机)。

复杂的答案:是的,这要感谢的魔力\r

基本上,您会阅读用户在每次击键的基础上键入的内容并自己进行跟踪(也许在中StringBuilder),然后,如果用户键入了魔术字,则使用擦除先前打印的行\r(这会移动插入符号到控制台的第一列而不创建新行),然后覆盖以前在此处打印的内容,但Console.ForegroundColor在重新打印之前进行设置

您不需要自己手动打印每个按键(直到用高亮重新打印它),因为Console.ReadKey这不会干扰控制台窗口的其他正常操作及其本地回显行为。

这很简单:

StringBuilder sb = new StringBuilder();
while( true ) {

    ConsoleKeyInfo key = Console.ReadKey();
    if( !Char.IsControl( key.KeyChar ) ) {

        sb.Append( key.KeyChar );
        if( sb.ToString() == "magic!" ) {

            Console.Write("\r");
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.Write( sb.ToString() );
            Console.ResetColor();
        }
    } else {
        sb.Length = 0;
    }
}

该代码是错误的且不完整,但是我认为它演示了基本概念。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Symfony2控制台应用程序中添加辅助输出?

来自分类Dev

控制台应用程序中的颜色

来自分类Dev

如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

来自分类Dev

如何在Windows Form应用程序中嵌入控制台?

来自分类Dev

如何在控制台应用程序中启用鼠标滚动

来自分类Dev

如何在控制台应用程序中设置默认连接字符串?

来自分类Dev

如何在.Net控制台应用程序中获取承载令牌?

来自分类Dev

如何在PHP控制台应用程序中刷新STDIN?

来自分类Dev

Qt如何在Windows中的非控制台应用程序中使用main()?

来自分类Dev

如何在Xamarin.iOS自己的应用程序中捕获控制台日志输出?

来自分类Dev

如何在C ++中从控制台应用程序显示MFC对话框?

来自分类Dev

如何在Yii控制台应用程序中包括PECL扩展

来自分类Dev

如何在code :: blocks中更改文本颜色和控制台颜色?

来自分类Dev

如何在C#控制台应用程序中播放背景音乐

来自分类Dev

如何在C#控制台应用程序中返回简单的int值

来自分类Dev

如何在C#中的控制台应用程序中激活代码的不同部分

来自分类Dev

如何在c#控制台应用程序中从.cshtml(razor)模板创建pdf

来自分类Dev

如何在控制台应用程序C#中打印值

来自分类Dev

如何在MVC中运行控制台应用程序

来自分类Dev

如何在Windows窗体中运行控制台应用程序代码?

来自分类Dev

如何在Angular应用程序中获取所有控制台错误消息

来自分类Dev

如何在控制台应用程序中配置ConsoleLogger?

来自分类Dev

如何在.NET Framework的控制台应用程序中创建通知?

来自分类Dev

如果用户在C#程序中打印“ x”,如何使控制台应用程序退出?

来自分类Dev

VSCode +调试器控制台。如何在调试器中更改文本的颜色?

来自分类Dev

如何在node.js控制台应用程序中应用模块模式?

来自分类Dev

如何在程序类(控制台应用程序)中访问变量

来自分类Dev

在控制台应用程序中解析粘贴的文本

来自分类Dev

运行控制台应用程序 Windows CMD 后如何清除控制台?

Related 相关文章

  1. 1

    如何在Symfony2控制台应用程序中添加辅助输出?

  2. 2

    控制台应用程序中的颜色

  3. 3

    如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

  4. 4

    如何在Windows Form应用程序中嵌入控制台?

  5. 5

    如何在控制台应用程序中启用鼠标滚动

  6. 6

    如何在控制台应用程序中设置默认连接字符串?

  7. 7

    如何在.Net控制台应用程序中获取承载令牌?

  8. 8

    如何在PHP控制台应用程序中刷新STDIN?

  9. 9

    Qt如何在Windows中的非控制台应用程序中使用main()?

  10. 10

    如何在Xamarin.iOS自己的应用程序中捕获控制台日志输出?

  11. 11

    如何在C ++中从控制台应用程序显示MFC对话框?

  12. 12

    如何在Yii控制台应用程序中包括PECL扩展

  13. 13

    如何在code :: blocks中更改文本颜色和控制台颜色?

  14. 14

    如何在C#控制台应用程序中播放背景音乐

  15. 15

    如何在C#控制台应用程序中返回简单的int值

  16. 16

    如何在C#中的控制台应用程序中激活代码的不同部分

  17. 17

    如何在c#控制台应用程序中从.cshtml(razor)模板创建pdf

  18. 18

    如何在控制台应用程序C#中打印值

  19. 19

    如何在MVC中运行控制台应用程序

  20. 20

    如何在Windows窗体中运行控制台应用程序代码?

  21. 21

    如何在Angular应用程序中获取所有控制台错误消息

  22. 22

    如何在控制台应用程序中配置ConsoleLogger?

  23. 23

    如何在.NET Framework的控制台应用程序中创建通知?

  24. 24

    如果用户在C#程序中打印“ x”,如何使控制台应用程序退出?

  25. 25

    VSCode +调试器控制台。如何在调试器中更改文本的颜色?

  26. 26

    如何在node.js控制台应用程序中应用模块模式?

  27. 27

    如何在程序类(控制台应用程序)中访问变量

  28. 28

    在控制台应用程序中解析粘贴的文本

  29. 29

    运行控制台应用程序 Windows CMD 后如何清除控制台?

热门标签

归档