Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Console.WindowLeft-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft die am weitesten links stehende Position des Konsolenfensterbereichs im Verhältnis zum Bildschirmpuffer ab oder legt diese fest.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static int WindowLeft { get; set; }

Eigenschaftswert

Type: System.Int32

Die am weitesten links stehende Konsolenfensterposition in Spalten.

Exception Condition
ArgumentOutOfRangeException

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.

IOException

Fehler beim Lesen oder Schreiben von Informationen.

Die Konsole stellt ein rechteckiges Fenster in einem größeren rechteckigen Pufferbereich dar. Das Fenster und der Puffer werden vertikal nach deren Anzahl von Zeilen und horizontal nach deren Anzahl von Spalten gemessen. Die Dimensionen des Pufferbereichs werden definiert, durch die BufferHeight und BufferWidth Eigenschaften. Die Dimensionen der der Bereich der Konsole werden definiert, durch die WindowHeight und WindowWidth Eigenschaften. Die WindowLeft Eigenschaft bestimmt, welche Spalte des Pufferbereichs in der ersten Spalte des Konsolenfensters angezeigt wird. Der Wert, der die WindowLeft Eigenschaft kann im Bereich von 0 bis BufferWidth - WindowWidth. Beim Festlegen auf einen Wert außerhalb der, die im Bereich löst eine ArgumentOutOfRangeException.

Wenn eine Konsolenfenster zuerst geöffnet wird, den Standardwert der WindowLeft Eigenschaft ist 0 (null), der angibt, dass die erste Spalte (an Position 0 (null)) im Pufferbereich die erste Spalte, die von der Konsole angezeigt entspricht. Die Standardbreite das Konsolenfenster und Pufferbereichs ist 80 Spalten. Dies bedeutet, dass die WindowLeft Eigenschaft kann geändert werden, nur dann, wenn das Konsolenfenster schmaler gemacht oder Pufferbereichs breiter gemacht wird.

Beachten Sie, dass die Breite des Pufferbereichs die Breite des Konsolenfensters, den Wert der überschreitet die WindowLeft Eigenschaft wird automatisch angepasst, wenn der Benutzer die horizontale Bildlaufleiste verwendet, um die Beziehung des Fensters zu Pufferbereichs definieren.

Beim Festlegen des Werts der WindowLeft Eigenschaft, wenn die Ausgabe umgeleitet, löst eine IOException Ausnahme. Um die Ausnahme zu verhindern, können Sie legen den Wert für diese Eigenschaft nur, wenn die IsOutputRedirected -Eigenschaft gibt false.

Im folgenden Beispiel wird ein 80-Spalte Konsolenfenster geöffnet und definiert einen Pufferbereich,, der 120 Spalten breit ist. Es zeigt Informationen zum Fenster und die Puffergröße und wartet dann darauf, dass sich der Benutzer auf die links-Taste oder der nach-rechts-Taste drücken. Im ersten Fall ist es verringert den Wert von der WindowLeft Eigenschaft um eins, wenn das Ergebnis ein gültiger Wert ist. Im letzteren Fall es erhöht den Wert des der WindowLeft Eigenschaft um eins, wenn das Ergebnis gültig wäre. Im Beispiel nicht behandeln muss, eine ArgumentOutOfRangeException, da wird, dass überprüft der Wert zugewiesen werden die WindowLeft -Eigenschaft ist nicht negativ und nicht dazu, dass die Summe der der WindowLeft und WindowWidth Eigenschaften überschreitet die BufferWidth Eigenschaftswert.

using System;

public class Example
{
   public static void 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);
   }

   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.");
   }
}

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: