Freigeben über


Console.WindowLeft Eigenschaft

Definition

Ruft die am weitesten links stehende Position des Konsolenfensterbereichs im Verhältnis zum Bildschirmpuffer ab oder legt diese 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")>]
member this.WindowLeft : int with get, set
member this.WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer

Eigenschaftswert

Int32

Die am weitesten links stehende Konsolenfensterposition in Spalten.

Attribute

Ausnahmen

In einem SET-Vorgang ist der zuzuweisende Wert kleiner als 0 (null).

- oder -

Als Ergebnis der Zuweisung würde WindowLeft plus WindowWidth den Wert für BufferWidth überschreiten.

Fehler beim Lesen oder Schreiben von Informationen.

Der set-Vorgang wird unter 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. Er zeigt Informationen zur Fenster- und Puffergröße an und wartet dann darauf, dass der Benutzer entweder die NACH-LINKS-TASTE oder die NACH-RECHTS-TASTE drückt. Im ersten Fall wird der Wert der -Eigenschaft um eins dekrementiert, wenn WindowLeft das Ergebnis ein rechtlicher Wert ist. Im letzteren Fall erhöht sie den Wert der -Eigenschaft um WindowLeft eins, wenn das Ergebnis legal wäre. Beachten Sie, dass im Beispiel kein behandelt werden muss, da überprüft wird, ob der wert, der der Eigenschaft zugewiesen werden soll, nicht negativ ist und nicht dazu führt, dass die Summe der -Eigenschaft und der -Eigenschaft den -Eigenschaftswert ArgumentOutOfRangeException WindowLeft WindowLeft WindowWidth BufferWidth überschreitet.

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

Hinweise

Die Konsole stellt ein rechteckiges Fenster in einem größeren rechteckigen Pufferbereich dar. Sowohl das Fenster als auch der Puffer werden vertikal anhand der Anzahl der Zeilen und horizontal anhand der Anzahl der Spalten gemessen. Die Dimensionen des Pufferbereichs werden durch die BufferHeight Eigenschaften und BufferWidth definiert. Die Abmessungen des Konsolenbereichs werden durch die WindowHeight Eigenschaften und 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 - WindowWidth liegen. Der Versuch, ihn auf einen Wert außerhalb dieses Bereichs festzulegen, löst eine ArgumentOutOfRangeException aus.

Wenn ein Konsolenfenster zum ersten Mal geöffnet wird, ist der Standardwert der WindowLeft -Eigenschaft 0 (null). Dies gibt an, dass die erste von der Konsole angezeigte Spalte 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 oder der Pufferbereich breiter wird.

Beachten Sie, dass der Wert der -Eigenschaft automatisch angepasst wird, wenn die Breite des Pufferbereichs die Breite des Konsolenfensters überschreitet, wenn der Benutzer die Beziehung des WindowLeft Fensters zum Pufferbereich mithilfe der horizontalen Bildlaufleiste definiert.

Der Versuch, den Wert der WindowLeft -Eigenschaft festzulegen, wenn die Ausgabe umgeleitet wird, löst eine IOException Ausnahme aus. Um die Ausnahme zu verhindern, können Sie den Wert dieser Eigenschaft nur festlegen, wenn IsOutputRedirected die Eigenschaft false zurückgibt.

Gilt für