我正在尝试创建一种交互式菜单(使用我过去的所有代码)。 当用户输入信息时,如何保持输出文本居中并确保光标居中?
为了使输出居中,我一直在使用很多空格。 至于光标居中,我不知道从哪里开始。
当前仅使用大量空格
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");
答案 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
得到中心的单词长度。