问题描述
所以我尝试使用 ConsoleKeyInfo 对用户输入进行编码。其作品。比我试图在按下 Esc 时实现取消。它也能工作,但它切断了我的一些 Writeline。当我尝试使用相同的代码检查例如 M 时,它工作得很好!
有人可以帮忙吗?
我的代码:
class Program
{
static void Main()
{
while (true)
{
string eingabeArtikelnummer,eingabePlatzalter;
Console.Clear();
Console.Write("Ein neuer Artikel wird angelegt:\n\nGeben Sie die Artikelnummer an: ");
eingabePlatzalter = SteuerungUndEingabe();
if (eingabePlatzalter == ConsoleKey.Escape.ToString()) { break; }
else { eingabeArtikelnummer = eingabePlatzalter; }
}
WartenAufUser();
}
static string SteuerungUndEingabe()
{
ConsoleKey input;
string userEingabe = null;
do
{
input = Console.ReadKey().Key;
if (input == ConsoleKey.Escape)
{
userEingabe = input.ToString();
break;
}
userEingabe += input.ToString();
} while (input != ConsoleKey.Enter);
return (userEingabe);
}
static void WartenAufUser()
{
Console.WriteLine("----------------------------------------------------------------------------------------\n\nBeliebige Taste druecken um ins Menue zu gelangen!");
while (Console.ReadKey() == null) { };
}
}
}
这是控制台中的输出:
应该是这样的:
编辑:
所以我问我的老师如何解决这个问题。他不知道为什么会发生这种情况,但他建议我解决问题并将我的 Writeline 更改为
Console.WriteLine("x\n----------------------------------------------------------------------------------------\n\nBeliebige Taste druecken um ins Menue zu gelangen!");
“x\n”奇迹般地避免了这个问题:D
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)