Стирание последнего напечатанного символа в консоли
Как реализовать стирание символа в консоли в данном методе? В данный момент при нажатии BackSpace сдвигается курсор, но не пропадает уже введенный символ из консоли
public string InputString(string mes, string escapeStr)
{
Console.WriteLine(mes);
Console.CursorVisible = true;
StringBuilder buffer = new();
ConsoleKeyInfo ski = Console.ReadKey(true);
while (ski.Key != ConsoleKey.Escape && ski.Key != ConsoleKey.Enter)
{
Console.Write(ski.KeyChar);
buffer.Append(ski.KeyChar);
ski = Console.ReadKey(true);
}
if (ski.Key == ConsoleKey.Enter)
{
return buffer.ToString();
}
return escapeStr;
Console.CursorVisible = false;
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Backspace + Space + Backspace
if (ski.Key == ConsoleKey.Backspace)
{
Console.Write("\b \b");
buffer.Length--;
}
Другой пример реализации, см. метод ReadPassword, обратите внимание на проверку char.IsControl.