繁体   English   中英

相对于文本的最后一行设置光标位置 C#控制台应用

[英]Set Cursor Position Relative to Last Line of Text | C# Console App

美好的一天

如果这是控制台的输出:

.
.
.
.
Hello World!

我想设置光标的位置,例如距文本的最后一行20行。 如果最后一行明显在不断变化,我该怎么办?

感谢您的时间。

Console.SetCursorPosition(Console.CursorLeft, (Console.CursorTop+20))

如果对您很重要,则传递CursorLeft会将其保持在相同的左侧位置。 否则,您只能传递0。

Console.SetCursorPosition(0, (Console.CursorTop+20))
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;

namespace CUrsorPosition
{
    class Program
    {
       static int lastCursorLocation = 0;
       //customCursorPosition say which line number you want the cursor to //set after the last text for example i have set it to 1 so next line to hellow //world
       static int customCursorPosition = 1;
        static void Main(string[] args)
        {
            // int customCursorPosition = 0;
            WriteLine(".");
            WriteLine(".");
            WriteLine(".");
            WriteLine(".");

            int x = Console.CursorLeft;
            int y = Console.CursorTop;
            Console.CursorTop = Console.WindowTop + Console.WindowHeight - 1;
            Console.SetCursorPosition(x, y);
            WriteLine("Hello World");
            Console.SetCursorPosition(0, y+ customCursorPosition);
            Console.ReadLine();


        }
        static void WriteLine(string message, [CallerLineNumber] int lineNumber = 0)
        {
            Console.WriteLine(lineNumber + ": " + message);
        }
        static void WriteLine(string message)
        {
            StackFrame callStack = new StackFrame(1, true);
            var lineNumber = callStack.GetFileLineNumber();
            lastCursorLocation = callStack.GetFileLineNumber();
            Console.WriteLine(message);

        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM