【问题标题】:How to hide the cursor in a C# console application on Linux?如何在 Linux 上的 C# 控制台应用程序中隐藏光标?
【发布时间】:2016-07-07 16:53:04
【问题描述】:

我正在编写一个使用 Mono 在 Linux 上运行的 C# 应用程序,我想隐藏控制台光标。但是由于这个Console.CursorVisible = false 似乎什么都不做,有没有另一种方法可以做到这一点,例如控制台命令还是原生函数?

【问题讨论】:

  • 如果它不起作用,是时候向 Mono 项目提交错误了。这在 Windows 上运行良好;它调用原生的SetConsoleCursorInfo 函数。

标签: c# linux console mono cursor


【解决方案1】:

这在很大程度上取决于您使用的终端/shell 类型,但在 OS-X iTerm 或终端 bash 上,我是这样做的:

public static void Main(string[] args)
{
    Process.Start("tput", "civis -- invisible");
    Console.WriteLine("Hello World!");
    Console.Read(); // no cursor
    Process.Start("tput", "cnorm -- normal");
    Console.Read(); // with cursor
}

这应该可以在 Linux/bash 和其他使用 terminfo 数据库的其他系统上正常工作,如果没有,我会检查您的 terminfo 数据库是否缺少元素。

【讨论】:

    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 2011-02-15
    • 2010-12-08
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多