最近調査したプロジェクトで、Console.Clear() を使用してコンソール画面全体を消去します。 )効果があることが証明されました。ただし、コンソール全体ではなく特定の行のみをクリアするという、より洗練されたアプローチが望まれていました。
残念ながら、Console.Clear() には、特定の行を選択的にターゲットにする機能がありません。消去。ただし、Console.SetCursorPosition 関数を使用して、特定の行番号に移動することができます。目的の行に配置したら、コンソール ウィンドウの幅にまたがる一連のスペースを書き込むことで行をクリアし、前のテキストを効果的に上書きできます。
このプロセスを簡素化するために、次のように定義します。 ClearCurrentConsoleLine() と呼ばれる静的メソッド:
public static void ClearCurrentConsoleLine() { int currentLineCursor = Console.CursorTop; Console.SetCursorPosition(0, Console.CursorTop); Console.Write(new string(' ', Console.WindowWidth)); Console.SetCursorPosition(0, currentLineCursor); }
このメソッドは、現在の行カーソルの位置を決定し、カーソルを元の位置に戻します。その行の先頭に、ウィンドウ幅全体にスペースを書き込んでテキストを上書きし、カーソルを元の位置に戻します。
このアプローチを説明するために、次の例を考えてみましょう。 :
Console.WriteLine("Test"); Console.SetCursorPosition(0, Console.CursorTop - 1); ClearCurrentConsoleLine();
実行すると、このコード:
その結果、「Test」はコンソール表示から削除されますが、後続のコンテンツは残ります。
さらに詳しく知りたい場合は、MSDN ドキュメントの Console.SetCursorPosition を参照してください。
以上がC# を使用してコンソール内の特定の行を選択的にクリアできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。