Console.WindowLeft Eigenschap

Definitie

Hiermee haalt u de meest linkse positie van het consolevenstergebied op ten opzichte van de schermbuffer.

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

Waarde van eigenschap

De meest linkse consolevensterpositie gemeten in kolommen.

Kenmerken

Uitzonderingen

In een setbewerking is de waarde die moet worden toegewezen kleiner dan nul.

– of –

Als gevolg van de toewijzing zou WindowLeft het plusteken WindowWidth groter zijn dan BufferWidth.

Fout bij het lezen of schrijven van informatie.

De setbewerking wordt aangeroepen op een ander besturingssysteem dan Windows.

Voorbeelden

In het volgende voorbeeld wordt een consolevenster met 80 kolommen geopend en wordt een buffergebied gedefinieerd dat 120 kolommen breed is. Er wordt informatie weergegeven over de grootte van het venster en de buffer en vervolgens wordt gewacht totdat de gebruiker op de toets Pijl-links of pijl-rechts drukt. In het eerste geval wordt de waarde van de WindowLeft eigenschap met één verminderd als het resultaat een juridische waarde is. In het laatste geval verhoogt het de waarde van het WindowLeft onroerend goed met één als het resultaat legaal zou zijn. Houd er rekening mee ArgumentOutOfRangeExceptiondat in het voorbeeld geen , omdat er wordt gecontroleerd of de waarde die aan de WindowLeft eigenschap moet worden toegewezen, niet negatief is en de som van de WindowLeft eigenschappen en WindowWidth eigenschappen de BufferWidth eigenschapswaarde niet overschrijdt.

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

Opmerkingen

De console vertegenwoordigt een rechthoekig venster in een groter rechthoekig buffergebied. Zowel het venster als de buffer worden verticaal gemeten op het aantal rijen en horizontaal op het aantal kolommen. De dimensies van het buffergebied worden gedefinieerd door de BufferHeight en BufferWidth eigenschappen. De dimensies van het consolegebied worden gedefinieerd door de WindowHeight en WindowWidth eigenschappen. De WindowLeft eigenschap bepaalt welke kolom van het buffergebied wordt weergegeven in de eerste kolom van het consolevenster. De waarde van de WindowLeft eigenschap kan variëren van 0 totBufferWidth - WindowWidth . Als u deze probeert in te stellen op een waarde buiten dat bereik, wordt er een ArgumentOutOfRangeException.

Wanneer een consolevenster voor het eerst wordt geopend, is de standaardwaarde van de WindowLeft eigenschap nul, wat aangeeft dat de eerste kolom die door de console wordt weergegeven, overeenkomt met de eerste kolom (de kolom op positie nul) in het buffergebied. De standaardbreedte van zowel het consolevenster als het buffergebied is 80 kolommen. Dit betekent dat de WindowLeft eigenschap alleen kan worden gewijzigd als het consolevenster smaller wordt gemaakt of het buffergebied breder wordt gemaakt.

Als de breedte van het buffergebied de breedte van het consolevenster overschrijdt, wordt de waarde van de WindowLeft eigenschap automatisch aangepast wanneer de gebruiker de horizontale schuifbalk gebruikt om de relatie van het venster met het buffergebied te definiëren.

Als u de waarde van de WindowLeft eigenschap probeert in te stellen wanneer uitvoer wordt omgeleid, wordt er een IOException uitzondering gegenereerd. Als u de uitzondering wilt voorkomen, kunt u de waarde van deze eigenschap alleen instellen als de IsOutputRedirected eigenschap wordt geretourneerd false.

Van toepassing op