如实现清屏功能:
static void Main(string[] args)
{
   Console.WriteLine("asfasdf");
   Process.Start("cmd.exe","/c cls");
}但程序运行时,会开屏另外一个DOS窗口下执行,不会清本屏的信息,如何解决?

解决方案 »

  1.   

    //******************** 清屏命令 begin ********************// 
       class StdHandleEnum 
       { 
          public const int STD_INPUT_HANDLE   = -10; 
          public const int STD_OUTPUT_HANDLE  = -11; 
          public const int STD_ERROR_HANDLE   = -12; 
       };    // This sructure contains a screen coordinate. 
       class cls 
       { 
          internal struct COORD 
          { 
             public short X; 
             public short Y; 
          }       // This stucture contains information about the 
          // console screen buffer. 
          [StructLayout(LayoutKind.Sequential, Pack=1)] 
             internal struct CONSOLE_SCREEN_BUFFER_INFO 
          { 
             public COORD      Size; 
             public COORD      p1; 
             public short      a1; 
             public short      w1; 
             public short      w2; 
             public short      w3; 
             public short      w4; 
             public COORD      m1; 
          }       // We need these four functions from KERNEL32.DLL. 
          // The GetStdHandle() function returns a handle to any 
          // standard input or output. 
          [DllImport("kernel32.dll")] 
          public static extern int GetStdHandle(int nStdHandle);       // The GetConsoleScreenBufferInfo() returns information 
          // about the console screen buffer so we know how much to 
          // clear. 
          [DllImport("kernel32.dll")] 
          public static extern bool GetConsoleScreenBufferInfo(int hConsoleOutput,   out CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);       // The SetConsoleCursorPosition() places the cursor on 
          // the console screen. 
          [DllImport("kernel32.dll")] 
          public static extern bool SetConsoleCursorPosition(int hConsoleOutput,   COORD dwCursorPosition);       // The FillConsoleOutputCharacter() allows us to place 
          // any character on the console screen. Using a space 
          // clears the display area. 
          [DllImport("kernel32.dll",SetLastError=true,CharSet=CharSet.Auto)] 
          public static extern bool FillConsoleOutputCharacter(int hConsoleOutput, short cCharacter, int nLength, COORD WriteCoord,   out int lpNumberOfCharsWritten);       [STAThread] 
          public static void Clear() 
          { 
             // Needed ask Windows about the console screen 
             // buffer settings. 
             CONSOLE_SCREEN_BUFFER_INFO CSBI; 
             // Handle to the output device. 
             int hOut; 
             // Number of characters written to the screen. 
             int CharOut; 
             // Home cursor position. 
             COORD Home;          // Clear the screen. 
             // Begin by getting a handle to the console screen. 
             hOut = GetStdHandle(StdHandleEnum.STD_OUTPUT_HANDLE);          // Get the required console screen buffer information. 
             GetConsoleScreenBufferInfo(hOut, out CSBI );          // Set the home position for the cursor. 
             Home.X = 0; 
             Home.Y = 0;          // Fill the console with spaces. 
             FillConsoleOutputCharacter(hOut, 
                (short) ' ', 
                CSBI.Size.X * CSBI.Size.Y, 
                Home, 
                out CharOut);          // Place the cursor in the upper left corner. 
             SetConsoleCursorPosition(hOut, Home);          // Show the screen is clear. 
             //Console.ReadLine(); 
          } 
       } 
    //******************** 清屏命令 end ********************// 
    在主程序中调用  cls.Clear(); 
      

  2.   

    Process.Start("cmd.exe","/k cls");