如何使我的所有输出以及光标保持在Visual Studios的中心?

时间:2018-09-15 15:45:32

标签: c# .net console

我正在尝试创建一种交互式菜单(使用我过去的所有代码)。 当用户输入信息时,如何保持输出文本居中并确保光标居中?

为了使输出居中,我一直在使用很多空格。 至于光标居中,我不知道从哪里开始。

当前仅使用大量空格

Console.WriteLine("\r\n\r\n                                  Welcome, Please Enter An Encrypted Message Using:");
Console.WriteLine("\r\n                                                     @ For A");
Console.WriteLine("\r\n                                                     # For E");
Console.WriteLine("\r\n                                                     ^ For I");
Console.WriteLine("\r\n                                                     * For O");
Console.WriteLine("\r\n                                                     + For U");

1 个答案:

答案 0 :(得分:3)

您可以尝试使用Console.SetCursorPosition方法进行一些计算,以使单词居中。

static void SetTextCentre(string s) {
    Console.SetCursorPosition((Console.WindowWidth - s.Length) / 2, Console.CursorTop);
    Console.WriteLine(s);
}

然后在Main函数中使用。

static void Main(string[] args)
{

    SetTextCenter("Welcome, Please Enter An Encrypted Message Using:");
    SetTextCenter("@ For A");
    SetTextCenter("# For E");
    SetTextCenter("^ For I");
    SetTextCenter("* For O");
    SetTextCenter("+ For U");

    Console.ReadKey();
}

注意

Console.SetCursorPosition方法中有两个参数。

  

public static void SetCursorPosition(int int,int top)

如果要设置中心,则需要关注第一个参数。

  • Console.WindowWidth获取当前控制台窗口的宽度。

  • (Console.WindowWidth - s.Length) / 2得到中心的单词长度。