Console.WindowLeft Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia najbardziej lewą pozycję obszaru okna konsoli względem buforu ekranu.
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")>]
member this.WindowLeft : int with get, set
member this.WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer
Wartość właściwości
Położenie okna konsoli po lewej stronie mierzone w kolumnach.
- Atrybuty
Wyjątki
W operacji zestawu wartość, która ma być przypisana, jest mniejsza niż zero.
-lub-
W wyniku przypisania WindowLeft parametr plus WindowWidth przekroczy BufferWidthwartość .
Błąd podczas odczytywania lub zapisywania informacji.
Operacja ustawiania jest wywoływana w systemie operacyjnym innym niż Windows.
Przykłady
Poniższy przykład otwiera okno konsoli 80-kolumnowej i definiuje obszar buforu o szerokości 120 kolumn. Wyświetla informacje o rozmiarze okna i buforu, a następnie czeka na użytkownika, aby nacisnąć klawisz STRZAŁKA W LEWO lub KLAWISZ STRZAŁKA W PRAWO. W pierwszym przypadku dekrementuje wartość WindowLeft właściwości o jedną, jeśli wynik jest wartością prawną. W drugim przypadku zwiększa wartość WindowLeft nieruchomości o jedną, jeśli wynik byłby legalny. Należy pamiętać, że przykład nie musi obsługiwać ArgumentOutOfRangeExceptionobiektu , ponieważ sprawdza, czy wartość, która ma zostać przypisana do WindowLeft właściwości, nie jest ujemna i nie powoduje, że suma WindowLeft właściwości i WindowWidth przekroczy BufferWidth wartość właściwości.
using namespace System;
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.");
}
int main()
{
ConsoleKeyInfo key;
bool moved = false;
Console::BufferWidth = 120;
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);
}
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
Uwagi
Konsola reprezentuje prostokątne okno w większym prostokątnym obszarze buforu. Zarówno okno, jak i bufor są mierzone pionowo według ich liczby wierszy i poziomo według ich liczby kolumn. Wymiary obszaru buforu są definiowane przez BufferHeight właściwości i BufferWidth . Wymiary obszaru konsoli są definiowane przez WindowHeight właściwości i WindowWidth . Właściwość WindowLeft określa, która kolumna obszaru buforu jest wyświetlana w pierwszej kolumnie okna konsoli. Wartość WindowLeft właściwości może wahać się od 0 do - BufferWidthWindowWidth . Próba ustawienia jej na wartość spoza tego zakresu zgłasza wartość ArgumentOutOfRangeException.
Po pierwszym otwarciu okna konsoli wartość WindowLeft domyślna właściwości to zero, która wskazuje, że pierwsza kolumna wyświetlana przez konsolę odpowiada pierwszej kolumnie (kolumnie na pozycji zero) w obszarze buforu. Domyślna szerokość okna konsoli i obszaru buforu to 80 kolumn. Oznacza to, że właściwość można zmodyfikować tylko wtedy, WindowLeft gdy okno konsoli jest węższe lub obszar buforu jest szerszy.
Należy pamiętać, że jeśli szerokość obszaru buforu przekracza szerokość okna konsoli, wartość WindowLeft właściwości jest automatycznie dostosowywana, gdy użytkownik używa poziomego paska przewijania w celu zdefiniowania relacji okna z obszarem buforu.
Próba ustawienia wartości WindowLeft właściwości, gdy dane wyjściowe są przekierowywane, zgłasza IOException wyjątek. Aby zapobiec wyjątkowi, można ustawić wartość tej właściwości tylko wtedy, gdy IsOutputRedirected właściwość zwróci wartość false
.