Console.SetCursorPosition(Int32, Int32) Console.SetCursorPosition(Int32, Int32) Console.SetCursorPosition(Int32, Int32) Console.SetCursorPosition(Int32, Int32) Method

정의

커서의 위치를 설정합니다.Sets the position of the cursor.

public:
 static void SetCursorPosition(int left, int top);
public static void SetCursorPosition (int left, int top);
static member SetCursorPosition : int * int -> unit
Public Shared Sub SetCursorPosition (left As Integer, top As Integer)

매개 변수

left
Int32 Int32 Int32 Int32

커서의 열 위치입니다.The column position of the cursor. 열은 0부터 시작하여 왼쪽부터 오른쪽까지 번호가 지정됩니다.Columns are numbered from left to right starting at 0.

top
Int32 Int32 Int32 Int32

커서의 행 위치입니다.The row position of the cursor. 행은 0부터 시작하여 위에서 아래로 번호가 지정됩니다.Rows are numbered from top to bottom starting at 0.

예외

left 또는 top가 0보다 작습니다.left or top is less than zero.

또는-or- leftBufferWidth보다 크거나 같습니다.left is greater than or equal to BufferWidth.

또는-or- topBufferHeight보다 크거나 같은 경우top is greater than or equal to BufferHeight.

사용자에게 이 작업을 수행할 권한이 없습니다.The user does not have permission to perform this action.

I/O 오류가 발생했습니다.An I/O error occurred.

예제

이 예제에서는 합니다 CursorLeft 하 고 CursorTop 속성 및 SetCursorPositionClear 메서드.This example demonstrates the CursorLeft and CursorTop properties, and the SetCursorPosition and Clear methods. 이 예제에서는 5 개 문자를 조합 하 여 5 문자가 사각형으로 그릴 다음 쓰기 발생할 위치를 결정 하는 커서를 배치 "+", "|", 및 "-" 문자열입니다.The example positions the cursor, which determines where the next write will occur, to draw a 5 character by 5 character rectangle using a combination of "+", "|", and "-" strings. 다른 문자열의 조합을 사용 하 여 더 적은 단계로 사각형을 그릴 수는 참고 합니다.Note that the rectangle could be drawn with fewer steps using a combination of other strings.

// This example demonstrates the 
//     Console.CursorLeft and 
//     Console.CursorTop properties, and the
//     Console.SetCursorPosition and 
//     Console.Clear methods.
using namespace System;
int origRow;
int origCol;
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 );
   }

}

int 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!

*/
// 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!

*/
' This example demonstrates the 
'     Console.CursorLeft and 
'     Console.CursorTop properties, and the
'     Console.SetCursorPosition and 
'     Console.Clear methods.
Class Sample
   Protected Shared origRow As Integer
   Protected Shared origCol As Integer
   
   Protected Shared Sub WriteAt(s As String, x As Integer, y As Integer)
      Try
         Console.SetCursorPosition(origCol + x, origRow + y)
         Console.Write(s)
      Catch e As ArgumentOutOfRangeException
         Console.Clear()
         Console.WriteLine(e.Message)
      End Try
   End Sub
   
   Public Shared Sub 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()
   End Sub
End Class
'
'This example produces the following results:
'
'+---+
'|   |
'|   |
'|   |
'+---+
'
'All done!
'

설명

사용 된 SetCursorPosition 콘솔 창에 다음 쓰기 작업을 시작할 위치를 지정 하는 방법입니다.Use the SetCursorPosition method to specify where the next write operation in the console window is to begin. 지정 된 커서 위치를 콘솔 창에 현재 표시 되는 영역 밖에 창 원본 커서가 표시 되도록 자동으로 변경 합니다.If the specified cursor position is outside the area that is currently visible in the console window, the window origin changes automatically to make the cursor visible.

콘솔 창에 문자를 쓸 때마다 다음 문자 위치에 커서를 자동으로 이동 합니다.The cursor automatically moves to the next character position each time a character is written to the console window. 커서 콘솔 창의 맨 아래 오른쪽 문자 위치에 있는 경우 다음 쓰기 작업을 수행 하면 스크롤 커서가 계속 표시 되므로 콘솔 창If the cursor is at the bottom right character position of the console window, the next write operation causes the console window to scroll so the cursor remains visible. 스크롤을 사용 하 여 콘솔 창을 않고 아래 오른쪽 문자 위치에 문자를 쓸 것인지는 MoveBufferArea 문자를 해당 위치로 이동 하는 방법입니다.If you want to write a character to the bottom right character position without causing the console window to scroll, use the MoveBufferArea method to move a character to that position.

보안

UIPermission
안전한 최상위 창 및 하위 창을 수정 합니다.for modifying safe top-level windows and subwindows. 연결 된 열거형: SafeTopLevelWindowsAssociated enumeration: SafeTopLevelWindows

적용 대상