如果您发布您为从 ASCII 字符创建此框而编写的代码,将会很有帮助。
如果您使用Console.WriteLine()
,只需Console.Write()
在最后一行使用方法即可。因此,对于您问题中的框,代码可能如下所示:
...
Console.WriteLine("-----");
Console.WriteLine("| |");
Console.Write("-----");
...
让我知道这是否有帮助。
我在示例应用程序中进行了测试,似乎没有创建额外的行。
更新
如果您想使用该框作为控制台窗口的边框,我想这将是最简单的解决方案(如果不是唯一的解决方案),不要在您正在绘制的框的底行添加最后一个-字符。
更新二
您可以尝试使用一个简单的技巧并在绘制最后一行之前动态更改控制台窗口的高度。这将防止窗口滚动。
试试这样的代码:
int width = Console.WindowWidth;
int height = Console.WindowHeight;
int i, j;
for (i = 0; i < width; ++i)
{
Console.Write("-");
}
for (j = 0; j < height - 2; ++j)
{
Console.Write("|");
for (i = 0; i < width - 2; ++i)
{
Console.Write(" ");
}
Console.Write("|");
}
//enlarge window in order to prevent it from being scrolled
Console.WindowHeight += 1;
for (i = 0; i < width; ++i)
{
Console.Write("-");
}
//restore window's original size
Console.WindowHeight -= 1;
//set cursor inside the border
Console.SetCursorPosition(1, 1);
这应该允许您在窗口中看到整个边框。
更新三
建议的解决方案
使用上面的代码,但使用Console.BufferWidth
而不是Console.WindowHeight
. 它似乎工作正常,不需要修改窗口的尺寸。