Console.WindowLeft Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die äußerst linke Position des Konsolenfensterbereichs relativ zum Bildschirmpuffer ab oder legt sie fest.
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
Eigenschaftswert
Die äußerst linke Konsolenfensterposition in Spalten.
- Attribute
Ausnahmen
Bei einem Set-Vorgang ist der zuzuweisende Wert kleiner als 0.
- oder -
Als Ergebnis der Zuordnung WindowLeft würde plus WindowWidth überschritten BufferWidth.
Fehler beim Lesen oder Schreiben von Informationen.
Der Set-Vorgang wird auf einem anderen Betriebssystem als Windows aufgerufen.
Beispiele
Im folgenden Beispiel wird ein Konsolenfenster mit 80 Spalten geöffnet und ein Pufferbereich definiert, der 120 Spalten breit ist. Es zeigt Informationen zur Fenster- und Puffergröße an und wartet dann, bis der Benutzer entweder die NACH-LINKS-TASTE oder die NACH-RECHTS-TASTE drückt. Im früheren Fall wird der Wert der WindowLeft Eigenschaft um eins erhöht, wenn das Ergebnis ein rechtlicher Wert ist. Im letzteren Fall erhöht sie den Wert der WindowLeft Immobilie um eins, wenn das Ergebnis legal wäre. Beachten Sie, dass das Beispiel kein Handle durchführen ArgumentOutOfRangeExceptionmuss, da überprüft wird, ob der wert, der der WindowLeft Eigenschaft zugewiesen werden soll, nicht negativ ist und die Summe der WindowLeft Eigenschaften und WindowWidth Eigenschaften den Eigenschaftswert nicht überschreitet 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
Hinweise
Die Konsole stellt ein rechteckiges Fenster in einen größeren rechteckigen Pufferbereich dar. Sowohl das Fenster als auch der Puffer werden vertikal anhand der Anzahl der Zeilen und horizontal nach der Anzahl der Spalten gemessen. Die Dimensionen des Pufferbereichs werden durch die und BufferWidth die BufferHeight Eigenschaften definiert. Die Abmessungen des Konsolenbereichs werden durch die WindowHeight eigenschaften WindowWidth definiert. Die WindowLeft Eigenschaft bestimmt, welche Spalte des Pufferbereichs in der ersten Spalte des Konsolenfensters angezeigt wird. Der Wert der WindowLeft Eigenschaft kann zwischen 0 und BufferWidth - WindowWidth0 liegen. Beim Versuch, ihn auf einen Wert außerhalb dieses Bereichs festzulegen, wird ein ArgumentOutOfRangeException.
Wenn ein Konsolenfenster zum ersten Mal geöffnet wird, ist der Standardwert der WindowLeft Eigenschaft Null, was angibt, dass die erste spalte, die von der Konsole angezeigt wird, der ersten Spalte (der Spalte an Position 0) im Pufferbereich entspricht. Die Standardbreite des Konsolenfensters und des Pufferbereichs beträgt 80 Spalten. Dies bedeutet, dass die WindowLeft Eigenschaft nur geändert werden kann, wenn das Konsolenfenster schmaler ist oder der Pufferbereich breiter gemacht wird.
Beachten Sie, dass der Wert WindowLeft der Eigenschaft automatisch angepasst wird, wenn die Breite des Pufferbereichs die Breite des Konsolenfensters überschreitet, wenn der Benutzer die horizontale Bildlaufleiste verwendet, um die Beziehung des Fensters zum Pufferbereich zu definieren.
Beim Versuch, den Wert der Eigenschaft festzulegen, wenn die WindowLeft Ausgabe umgeleitet wird, wird eine IOException Ausnahme ausgelöst. Um die Ausnahme zu verhindern, können Sie den Wert dieser Eigenschaft nur festlegen, wenn die IsOutputRedirected Eigenschaft zurückgegeben wird false.