Console.CursorTop Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets the row position of the cursor within the buffer area.
public:
static property int CursorTop { int get(); void set(int value); };
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static int CursorTop { get; set; }
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
[System.Runtime.Versioning.UnsupportedOSPlatform("android")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static int CursorTop { get; set; }
public static int CursorTop { get; set; }
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member CursorTop : int with get, set
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("android")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member CursorTop : int with get, set
static member CursorTop : int with get, set
Public Shared Property CursorTop As Integer
Property Value
The current position, in rows, of the cursor.
- Attributes
Exceptions
The value in a set operation is less than zero.
-or-
The value in a set operation is greater than or equal to BufferHeight.
The user does not have permission to perform this action.
An I/O error occurred.
Examples
This example demonstrates the CursorLeft and CursorTop properties, and the SetCursorPosition and Clear methods. 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.
open System
// Clear the screen, then save the top and left coordinates.
Console.Clear()
let origRow = Console.CursorTop
let origCol = Console.CursorLeft
let writeAt s x y =
try
Console.SetCursorPosition(origCol + x, origRow + y)
printfn $"%s{s}"
with :? ArgumentOutOfRangeException as e ->
Console.Clear()
printfn $"{e.Message}"
// 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
printfn ""
// 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!
'