Console.WindowLeft Tulajdonság

Definíció

Lekéri vagy beállítja a konzolablak területének bal szélső pozícióját a képernyőpufferhez képest.

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

Tulajdonság értéke

A bal szélső konzolablak pozíciója oszlopokban mérve.

Attribútumok

Kivételek

Egy halmazműveletben a hozzárendelni kívánt érték kisebb, mint nulla.

-vagy-

A hozzárendelés WindowLeft eredményeként a plusz WindowWidth értéke meghaladja a .BufferWidth

Hiba történt az információk olvasása vagy írása közben.

A beállított műveletet a rendszer nem Windows operációs rendszeren hívja meg.

Példák

Az alábbi példa egy 80 oszlopos konzolablakot nyit meg, és egy 120 oszlop széles pufferterületet határoz meg. Megjeleníti az ablak és a puffer méretére vonatkozó információkat, majd megvárja, amíg a felhasználó lenyomja a BALRA vagy a JOBBRA nyílbillentyűt. Az előbbi esetben az ingatlan értékét WindowLeft egyenként csökkenti, ha az eredmény jogi érték. Az utóbbi esetben az ingatlan értékét WindowLeft eggyel növeli, ha az eredmény jogi lenne. Vegye figyelembe, hogy a példának nem kell kezelnie a tulajdonságot ArgumentOutOfRangeException, mert ellenőrzi, hogy a tulajdonsághoz WindowLeft rendelendő érték nem negatív-e, és nem okozza-e a WindowLeftWindowWidth tulajdonságérték túllépésének BufferWidth okát.

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

Megjegyzések

A konzol egy téglalap alakú ablakot jelöl egy nagyobb téglalap alakú pufferterületen. Az ablakot és a puffert függőlegesen, a sorok számával és az oszlopok számával vízszintesen méri a rendszer. A pufferterület méreteit a BufferHeight tulajdonságok határozzák BufferWidth meg. A konzolterület méreteit a WindowHeight tulajdonságok határozzák WindowWidth meg. A WindowLeft tulajdonság határozza meg, hogy a pufferterület melyik oszlopa jelenik meg a konzolablak első oszlopában. A tulajdonság értéke WindowLeft 0 és 0 BufferWidth - WindowWidthközött lehet. Ha a tartományon kívüli értékre próbálja beállítani, a rendszer egy ArgumentOutOfRangeException.

Amikor először megnyílik egy konzolablak, a WindowLeft tulajdonság alapértelmezett értéke nulla, ami azt jelzi, hogy a konzol által megjelenített első oszlop a pufferterület első oszlopának (a nulla pozícióban lévő oszlopnak) felel meg. A konzolablak és a pufferterület alapértelmezett szélessége 80 oszlop. Ez azt jelenti, hogy a WindowLeft tulajdonság csak akkor módosítható, ha a konzolablak keskenyebb, vagy a pufferterület szélesebb.

Vegye figyelembe, hogy ha a pufferterület szélessége meghaladja a konzolablak szélességét, a rendszer automatikusan módosítja a WindowLeft tulajdonság értékét, amikor a felhasználó a vízszintes görgetősáv használatával határozza meg az ablak és a pufferterület közötti kapcsolatot.

Ha a kimenet átirányításakor megkísérli beállítani a WindowLeft tulajdonság értékét, kivételt IOException jelent. A kivétel elkerülése érdekében a tulajdonság értékét csak akkor állíthatja be, ha a tulajdonság visszaadjaIsOutputRedirected.false

A következőre érvényes: