c# - c#控制台应用程序光标移动时删除char
问题描述
我正在使用控制台应用程序的记事本。当我按左、右、上、下键时,它应该移动光标。这是代码:
// 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;
}
}
}
是的光标移动但在它离开之前删除它上面的字符。我该如何解决?
解决方案
你可以试试这个
ConsoleKeyInfo key = Console.ReadKey(true);
Console.SetCursorPosition(Console.CursorLeft, Console.CursorTop);
Console.ReadKey(true) 是一个可选参数,选择不显示读取密钥。 Console.ReadKey(布尔值)
推荐阅读
- .net - .Net Core 3.0 Cookie 身份验证。授权属性总是重定向
- macos - Applescript 从脚本编辑器启动时运行良好,但在作为服务运行时运行
- c++ - 我收到“错误:预期的';' 在类定义之后”在 C++ 中使用类之后
- c# - 如何在 C# 中将数据(数组列表)转换为 Jpeg 文件或 Pdf 或布局
- html - Angular:类型检查模板无法正常工作
- python - 如何使用 piexif 修改 XPKeywords?
- curl - IBM Watson Text-to-speech API 不断抛出错误:403 Forbidden
- python - 在tensorflow的占位符中为“None+”添加特定维度是什么意思?
- php - 处方结果失败
- c# - 使用 c# 在 domino 服务器中根据用户注册密码验证验证者 id 文件