如何在Linux上的C#控制台应用程序中隐藏光标?
我正在编写一个C#应用程序,该应用程序在Linux上使用Mono运行,我想隐藏控制台光标。但是,由于这个如何在Linux上的C#控制台应用程序中隐藏光标?,c#,linux,console,mono,cursor,C#,Linux,Console,Mono,Cursor,我正在编写一个C#应用程序,该应用程序在Linux上使用Mono运行,我想隐藏控制台光标。但是,由于这个Console.CursorVisible=false似乎什么都不做,有没有其他方法可以做到这一点,例如控制台命令或本机函数?这在很大程度上取决于您使用的终端/外壳类型,但在OS-X iTerm或terminal bash上,我是这样做的: public static void Main(string[] args) { Process.Start("tput", "civis --
Console.CursorVisible=false
似乎什么都不做,有没有其他方法可以做到这一点,例如控制台命令或本机函数?这在很大程度上取决于您使用的终端/外壳类型,但在OS-X iTerm或terminal 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数据库中缺少的元素。这在很大程度上取决于您使用的终端/外壳类型,但在OS-X iTerm或terminal 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数据库中缺少的元素。如果它不工作,是时候向Mono项目提交一个bug了。这在窗户上效果很好;它调用本机的setConsoleUrsOrInfo
函数。如果它不起作用,是时候向Mono项目提交一个bug了。这在窗户上效果很好;它调用本机setConsoleUrsOrInfo
函数。