Console.WindowLeft Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger den vänstra positionen för konsolfönstrets område i förhållande till skärmbufferten.
public:
static property int WindowLeft { int get(); void set(int value); };
public static int WindowLeft { get; [System.Runtime.Versioning.SupportedOSPlatform("windows")] set; }
public static int WindowLeft { get; set; }
[<set: System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member WindowLeft : int with get, set
static member WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer
Egenskapsvärde
Konsolfönstrets position längst till vänster mätt i kolumner.
- Attribut
Undantag
I en uppsättningsåtgärd är värdet som ska tilldelas mindre än noll.
-eller-
Som ett resultat av tilldelningen WindowLeft skulle plus WindowWidth överskrida BufferWidth.
Det gick inte att läsa eller skriva information.
Set-åtgärden anropas på ett annat operativsystem än Windows.
Exempel
I följande exempel öppnas ett konsolfönster med 80 kolumner och definierar ett buffertområde som är 120 kolumner brett. Den visar information om fönstret och buffertstorleken och väntar sedan på att användaren ska trycka på antingen VÄNSTERPIL eller HÖGERPIL. I det tidigare fallet minskar värdet på WindowLeft egenskapen med ett om resultatet är ett juridiskt värde. I det senare fallet ökar värdet på WindowLeft fastigheten med ett om resultatet skulle vara lagligt. Observera att exemplet inte behöver hantera en ArgumentOutOfRangeException, eftersom det kontrollerar att värdet som ska tilldelas egenskapen WindowLeft inte är negativt och inte gör att summan av WindowLeft egenskaperna och WindowWidth överskrider egenskapsvärdet BufferWidth .
using System;
public class Example
{
public static void Main()
{
ConsoleKeyInfo key;
bool moved = false;
Console.BufferWidth += 4;
Console.Clear();
ShowConsoleStatistics();
do
{
key = Console.ReadKey(true);
if (key.Key == ConsoleKey.LeftArrow)
{
int pos = Console.WindowLeft - 1;
if (pos >= 0 && pos + Console.WindowWidth <= Console.BufferWidth)
{
Console.WindowLeft = pos;
moved = true;
}
}
else if (key.Key == ConsoleKey.RightArrow)
{
int pos = Console.WindowLeft + 1;
if (pos + Console.WindowWidth <= Console.BufferWidth)
{
Console.WindowLeft = pos;
moved = true;
}
}
if (moved)
{
ShowConsoleStatistics();
moved = false;
}
Console.WriteLine();
} while (true);
}
private static void ShowConsoleStatistics()
{
Console.WriteLine("Console statistics:");
Console.WriteLine(" Buffer: {0} x {1}", Console.BufferHeight, Console.BufferWidth);
Console.WriteLine(" Window: {0} x {1}", Console.WindowHeight, Console.WindowWidth);
Console.WriteLine(" Window starts at {0}.", Console.WindowLeft);
Console.WriteLine("Press <- or -> to move window, Ctrl+C to exit.");
}
}
open System
let showConsoleStatistics () =
printfn "Console statistics:"
printfn $" Buffer: {Console.BufferHeight} x {Console.BufferWidth}"
printfn $" Window: {Console.WindowHeight} x {Console.WindowWidth}"
printfn $" Window starts at {Console.WindowLeft}."
printfn "Press <- or -> to move window, Ctrl+C to exit."
Console.BufferWidth <- Console.BufferWidth + 4
Console.Clear()
showConsoleStatistics ()
let mutable moved = false
while true do
let key = Console.ReadKey true
if key.Key = ConsoleKey.LeftArrow then
let pos = Console.WindowLeft - 1
if pos >= 0 && pos + Console.WindowWidth <= Console.BufferWidth then
Console.WindowLeft <- pos
moved <- true
elif key.Key = ConsoleKey.RightArrow then
let pos = Console.WindowLeft + 1
if pos + Console.WindowWidth <= Console.BufferWidth then
Console.WindowLeft <- pos
moved <- true
if moved then
showConsoleStatistics ()
moved <- false
printfn ""
Module Example
Public Sub Main()
Dim key As ConsoleKeyInfo
Dim moved As Boolean = False
Console.BufferWidth = 120
Console.Clear()
ShowConsoleStatistics()
Do While True
key = Console.ReadKey(True)
If key.Key = ConsoleKey.LeftArrow Then
Dim pos As Integer = Console.WindowLeft - 1
If pos >= 0 And pos + Console.WindowWidth <= Console.BufferWidth Then
Console.WindowLeft = pos
moved = True
End If
ElseIf key.Key = ConsoleKey.RightArrow Then
Dim pos As Integer = Console.WindowLeft + 1
If pos + Console.WindowWidth <= Console.BufferWidth Then
Console.WindowLeft = pos
moved = True
End If
End If
If moved Then ShowConsoleStatistics() : moved = False
Console.WriteLine()
Loop
End Sub
Private Sub ShowConsoleStatistics()
Console.WriteLine("Console statistics:")
Console.WriteLine(" Buffer: {0} x {1}", Console.BufferHeight, Console.BufferWidth)
Console.WriteLine(" Window: {0} x {1}", Console.WindowHeight, Console.WindowWidth)
Console.WriteLine(" Window starts at {0}.", Console.WindowLeft)
Console.WriteLine("Press <- or -> to move window, Ctrl+C to exit.")
End Sub
End Module
Kommentarer
Konsolen representerar ett rektangulärt fönster till ett större rektangulärt buffertområde. Både fönstret och bufferten mäts lodrätt med antalet rader och vågrätt efter antalet kolumner. Buffertområdets dimensioner definieras av BufferHeight egenskaperna och BufferWidth . Konsolområdets dimensioner definieras av WindowHeight egenskaperna och WindowWidth . Egenskapen WindowLeft avgör vilken kolumn i buffertområdet som visas i den första kolumnen i konsolfönstret. Värdet för WindowLeft egenskapen kan variera från 0 tillBufferWidth - WindowWidth . Om du försöker ange det till ett värde utanför det området utlöser ett ArgumentOutOfRangeException.
När ett konsolfönster öppnas först är standardvärdet för WindowLeft egenskapen noll, vilket anger att den första kolumnen som visas av konsolen motsvarar den första kolumnen (kolumnen vid position noll) i buffertområdet. Standardbredden för både konsolfönstret och buffertområdet är 80 kolumner. Det innebär att WindowLeft egenskapen endast kan ändras om konsolfönstret är smalare eller om buffertområdet görs bredare.
Observera att om buffertområdets bredd överskrider konsolfönstrets bredd justeras värdet WindowLeft för egenskapen automatiskt när användaren använder den vågräta rullningslisten för att definiera fönstrets relation till buffertområdet.
Om du försöker ange värdet för WindowLeft egenskapen när utdata omdirigeras genereras ett IOException undantag. För att förhindra undantaget kan du bara ange värdet för den här egenskapen om egenskapen IsOutputRedirected returnerar false.