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 меньше нуля.left or top is less than zero.

-или--or- Значение параметра left больше или равно значению свойства BufferWidth.left is greater than or equal to BufferWidth.

-или--or- Значение параметра top больше или равно значению свойства BufferHeight.top is greater than or equal to BufferHeight.

Данный пользователь не имеет разрешения на выполнение этого действия.The user does not have permission to perform this action.

Ошибка ввода/вывода.An I/O error occurred.

Примеры

В этом примере показано CursorLeft и CursorTop свойства и SetCursorPosition и Clear методы.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.
Imports System

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 'WriteAt
   
   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 'Main
End Class 'Sample
'
'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

Применяется к