System.Console.SetCursorPosition 方法

方法描述

设置光标位置。

语法定义(C# System.Console.SetCursorPosition 方法 的用法)

public static void SetCursorPosition(
	int left,
	int top
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
left System-Int32 光标的列位置。
top System-Int32 光标的行位置。
返回值 void

提示和注释

使用 SetCursorPosition 方法可指定控制台窗口中的下一次写入操作从哪个位置开始。 如果指定的光标位置位于控制台窗口中当前可见的区域之外,则窗口原点会自动更改,以使光标可见。

每次在控制台窗口中写入一个字符后,光标都会自动移动到下一个字符位置。 如果光标位于控制台窗口右下角的字符位置,下一次写入操作会使控制台窗口滚动,以使光标保持可见。 如果想在右下角的字符位置写入字符而不让控制台窗口滚动,可使用 MoveBufferArea 方法将该字符移动到该位置。

System.Console.SetCursorPosition 方法例子

注意,如果使用其他字符串的组合绘制该矩形,则绘制步骤可以更少。

// This example demonstrates the 
//     Console.CursorLeft and 
//     Console.CursorTop properties, and the
//     Console.SetCursorPosition and 
//     Console.Clear methods.
using System;

class Sample 
{
    protected static int origRow;
    protected static int origCol;

    protected static void WriteAt(string s, int x, int y)
    {
    try
        {
        Console.SetCursorPosition(origCol+x, origRow+y);
        Console.Write(s);
        }
    catch (ArgumentOutOfRangeException e)
        {
        Console.Clear();
        Console.WriteLine(e.Message);
        }
    }

    public static void Main() 
    {
// Clear the screen, then save the top and left coordinates.
    Console.Clear();
    origRow = Console.CursorTop;
    origCol = Console.CursorLeft;

// Draw the left side of a 5x5 rectangle, from top to bottom.
    WriteAt("+", 0, 0);
    WriteAt("|", 0, 1);
    WriteAt("|", 0, 2);
    WriteAt("|", 0, 3);
    WriteAt("+", 0, 4);

// Draw the bottom side, from left to right.
    WriteAt("-", 1, 4); // shortcut: WriteAt("---", 1, 4)
    WriteAt("-", 2, 4); // ...
    WriteAt("-", 3, 4); // ...
    WriteAt("+", 4, 4);

// Draw the right side, from bottom to top.
    WriteAt("|", 4, 3);
    WriteAt("|", 4, 2);
    WriteAt("|", 4, 1);
    WriteAt("+", 4, 0);

// Draw the top side, from right to left.
    WriteAt("-", 3, 0); // shortcut: WriteAt("---", 1, 0)
    WriteAt("-", 2, 0); // ...
    WriteAt("-", 1, 0); // ...
//
    WriteAt("All done!", 0, 6);
    Console.WriteLine();
    }
}
/*
This example produces the following results:

+---+
|   |
|   |
|   |
+---+

All done!

*/

异常

异常 异常描述
ArgumentOutOfRangeException
  • left 或 top 小于零。
  • left 大于等于 BufferWidth。
  • top 大于等于 BufferHeight。
SecurityException 该用户没有执行此操作的权限。
IOException 发生了 I/O 错误。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。