我是c#新手。我正在创建一个简单的控制台应用程序。我的任务是在控制台的某个地方做个记号。每次都要擦掉旧的位置。它的工作原理。但是有一个问题。使用控制台时。明确的();这只是一个转换到一个新的框架,可以看到我以前标记的点的旧位置。
每次点击后都会滚动
如何删除以前的控制台值?
MyCode:
using System;
namespace paint
{
class Point
{
public int x {get;set;}
public int y {get;set;}
//public int mark_y {get;set;}
//public int mark_x {get;set;}
protected int[] Position(){
this.x = x;
this.y = y;
//this.mark_x = mark_x;
//this.mark_y = mark_y;
return new int [] {this.x,this.y};
}
}
class Program
{
static void Main(string[] args)
{
Console.ForegroundColor = ConsoleColor.Red;
Point position = new Point{x = 10, y = 5};
do
{
Console.SetCursorPosition(position.x, position.y);
System.ConsoleKeyInfo console_key = Console.ReadKey(true);
if(console_key.Key == ConsoleKey.DownArrow && position.y >= 0 && position.y <= 9){
position.y += 1;
}
if(console_key.Key == ConsoleKey.UpArrow && position.y <= 10 && position.y >= 2){
position.y -= 1;
}
if(console_key.Key == ConsoleKey.LeftArrow && position.x <= 19 && position.x >= 1){
position.x -= 1;
}
if(console_key.Key == ConsoleKey.RightArrow && position.x >= 0 && position.x <= 18){
position.x += 1;
}
if(console_key.Key == ConsoleKey.Spacebar){
//position.mark_x = position.x;
//position.mark_y = position.y;
Console.Clear();
Console.SetCursorPosition(position.x, position.y);
Console.WriteLine("█");
}
} while (true);
}
}
}
您可以通过使用console Functions在每次重置位置时创建一个新控制台来做到这一点。使用FreeConsole分离当前控制台,然后使用AllocConsole创建一个新控制台。