我正在使用控制台应用程序上的记事本。当我按左,右,上,下键时,它应该移动光标。这是代码:
// For testing cursor moves
static void WriteMethod()
{
bool Stop = false;
Console.Clear();
Console.SetCursorPosition(0, 0);
foreach (string s in NoteLines){ Console.WriteLine(s); }
// Stop'll be true when esc is pressed but I didn't added it yet
while(Stop == false)
{
ConsoleKeyInfo key = Console.ReadKey();
Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
switch (key.Key)
{
case ConsoleKey.LeftArrow:
if (Console.CursorLeft > 0) Console.SetCursorPosition(Console.CursorLeft - 1, Console.CursorTop);
else Console.SetCursorPosition(0, ((Console.CursorTop > 0) ? Console.CursorTop - 1 : 0));
break;
case ConsoleKey.RightArrow:
if (Console.CursorLeft + 1 > Console.BufferWidth - 1) Console.SetCursorPosition(0, Console.CursorTop + 1);
else Console.CursorLeft += 1;
break;
case ConsoleKey.UpArrow:
if (Console.CursorTop > 0) Console.CursorTop -= 1;
break;
case ConsoleKey.DownArrow:
Console.SetCursorPosition(Console.CursorLeft, Console.CursorTop + 1);
break;
}
}
}
是光标移动但在它离开之前删除它上面的字符。我该如何解决?
答案 0 :(得分:2)
你可以试试这个,
ConsoleKeyInfo key = Console.ReadKey(true);
Console.SetCursorPosition(Console.CursorLeft, Console.CursorTop);
Console.ReadKey(true)是一个可选参数,选择不显示读取键。 Console.ReadKey(Boolean)