在C#控制台应用程序中编辑文本?

有没有办法在C#控制台应用程序中编辑文本? 换句话说,是否可以在命令行上放置预定义的文本,以便用户可以修改文本然后将其重新提交给应用程序?

我想到的一件事是……模拟击键。 还有一个使用SendKeys的简单示例:

static void Main(string[] args) { Console.Write("Your editable text:"); SendKeys.SendWait("hello"); //hello text will be editable :) Console.ReadLine(); } 

注意:这仅适用于活动窗口。

是。 您需要使用Console的方法SetCursorPosition。 例:

  Console.WriteLine("hello"); Console.SetCursorPosition(4, 0); Console.WriteLine(" "); 

它将显示’hell’你需要自定义ReadLine方法的实现,它允许你在Console中编辑n符号(默认字符串)并从用户返回字符串。 这是我的例子:

 static string ReadLine(string Default) { int pos = Console.CursorLeft; Console.Write(Default); ConsoleKeyInfo info; List chars = new List (); if (string.IsNullOrEmpty(Default) == false) { chars.AddRange(Default.ToCharArray()); } while (true) { info = Console.ReadKey(true); if (info.Key == ConsoleKey.Backspace && Console.CursorLeft > pos) { chars.RemoveAt(chars.Count - 1); Console.CursorLeft -= 1; Console.Write(' '); Console.CursorLeft -= 1; } else if (info.Key == ConsoleKey.Enter) { Console.Write(Environment.NewLine); break; } //Here you need create own checking of symbols else if (char.IsLetterOrDigit(info.KeyChar)) { Console.Write(info.KeyChar); chars.Add(info.KeyChar); } } return new string(chars.ToArray ()); } 

此方法将显示字符串Default。 希望我理解你的问题(我怀疑它)