Console.WindowLeft Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja a konzolablak területének bal szélső pozícióját a képernyőpufferhez képest.
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
Tulajdonság értéke
A bal szélső konzolablak pozíciója oszlopokban mérve.
- Attribútumok
Kivételek
Egy halmazműveletben a hozzárendelni kívánt érték kisebb, mint nulla.
-vagy-
A hozzárendelés WindowLeft eredményeként a plusz WindowWidth értéke meghaladja a .BufferWidth
Hiba történt az információk olvasása vagy írása közben.
A beállított műveletet a rendszer nem Windows operációs rendszeren hívja meg.
Példák
Az alábbi példa egy 80 oszlopos konzolablakot nyit meg, és egy 120 oszlop széles pufferterületet határoz meg. Megjeleníti az ablak és a puffer méretére vonatkozó információkat, majd megvárja, amíg a felhasználó lenyomja a BALRA vagy a JOBBRA nyílbillentyűt. Az előbbi esetben az ingatlan értékét WindowLeft egyenként csökkenti, ha az eredmény jogi érték. Az utóbbi esetben az ingatlan értékét WindowLeft eggyel növeli, ha az eredmény jogi lenne. Vegye figyelembe, hogy a példának nem kell kezelnie a tulajdonságot ArgumentOutOfRangeException, mert ellenőrzi, hogy a tulajdonsághoz WindowLeft rendelendő érték nem negatív-e, és nem okozza-e a WindowLeftWindowWidth tulajdonságérték túllépésének BufferWidth okát.
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
Megjegyzések
A konzol egy téglalap alakú ablakot jelöl egy nagyobb téglalap alakú pufferterületen. Az ablakot és a puffert függőlegesen, a sorok számával és az oszlopok számával vízszintesen méri a rendszer. A pufferterület méreteit a BufferHeight tulajdonságok határozzák BufferWidth meg. A konzolterület méreteit a WindowHeight tulajdonságok határozzák WindowWidth meg. A WindowLeft tulajdonság határozza meg, hogy a pufferterület melyik oszlopa jelenik meg a konzolablak első oszlopában. A tulajdonság értéke WindowLeft 0 és 0 BufferWidth - WindowWidthközött lehet. Ha a tartományon kívüli értékre próbálja beállítani, a rendszer egy ArgumentOutOfRangeException.
Amikor először megnyílik egy konzolablak, a WindowLeft tulajdonság alapértelmezett értéke nulla, ami azt jelzi, hogy a konzol által megjelenített első oszlop a pufferterület első oszlopának (a nulla pozícióban lévő oszlopnak) felel meg. A konzolablak és a pufferterület alapértelmezett szélessége 80 oszlop. Ez azt jelenti, hogy a WindowLeft tulajdonság csak akkor módosítható, ha a konzolablak keskenyebb, vagy a pufferterület szélesebb.
Vegye figyelembe, hogy ha a pufferterület szélessége meghaladja a konzolablak szélességét, a rendszer automatikusan módosítja a WindowLeft tulajdonság értékét, amikor a felhasználó a vízszintes görgetősáv használatával határozza meg az ablak és a pufferterület közötti kapcsolatot.
Ha a kimenet átirányításakor megkísérli beállítani a WindowLeft tulajdonság értékét, kivételt IOException jelent. A kivétel elkerülése érdekében a tulajdonság értékét csak akkor állíthatja be, ha a tulajdonság visszaadjaIsOutputRedirected.false