Sdílet prostřednictvím


Console.WindowLeft Vlastnost

Definice

Získá nebo nastaví pozici úplně vlevo oblasti okna konzoly vzhledem k vyrovnávací paměti obrazovky.

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

Hodnota vlastnosti

Pozice levého okna konzoly měřená ve sloupcích.

Atributy

Výjimky

V operaci sady je hodnota, která se má přiřadit, menší než nula.

nebo

V důsledku přiřazení WindowLeft by plus WindowWidth překročil BufferWidth.

Při čtení nebo zápisu informací došlo k chybě.

Operace set je vyvolána v jiném operačním systému než Windows.

Příklady

Následující příklad otevře okno konzoly s 80 sloupci a definuje oblast vyrovnávací paměti, která je širokých 120 sloupců. Zobrazí informace o velikosti okna a vyrovnávací paměti a potom počká, až uživatel stiskne klávesu ŠIPKA VLEVO nebo ŠIPKA VPRAVO. V prvním případě se hodnota vlastnosti sníží WindowLeft o jednu, pokud je výsledkem právní hodnota. V druhém případě zvýší hodnotu WindowLeft vlastnosti o jednu, pokud by výsledek byl právní. Všimněte si, že příklad nemusí zpracovat ArgumentOutOfRangeException, protože kontroluje, že hodnota, která má být přiřazena k WindowLeft vlastnosti není záporná a nezpůsobuje součet WindowLeft a WindowWidth vlastnosti překročení BufferWidth hodnoty vlastnosti.

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

Poznámky

Konzola představuje obdélníkové okno do větší obdélníkové oblasti vyrovnávací paměti. Okno i vyrovnávací paměť se měří svisle podle počtu řádků a vodorovně podle počtu sloupců. Rozměry oblasti vyrovnávací paměti jsou definovány vlastnostmi BufferHeight a BufferWidth vlastnostmi. Rozměry oblasti konzoly jsou definovány vlastnostmi WindowHeight a WindowWidth vlastnostmi. Vlastnost WindowLeft určuje, který sloupec oblasti vyrovnávací paměti se zobrazí v prvním sloupci okna konzoly. Hodnota vlastnosti může být v rozsahu WindowLeft od 0 do - BufferWidthWindowWidth . Pokus o nastavení na hodnotu mimo tento rozsah vyvolá výjimku ArgumentOutOfRangeException.

Když se poprvé otevře okno konzoly, výchozí hodnota WindowLeft vlastnosti je nula, což značí, že první sloupec zobrazený konzolou odpovídá prvnímu sloupci (sloupec na pozici nula) v oblasti vyrovnávací paměti. Výchozí šířka okna konzoly i oblasti vyrovnávací paměti je 80 sloupců. To znamená, že vlastnost lze upravit pouze v případě, že WindowLeft okno konzoly je zúženo nebo je oblast vyrovnávací paměti širší.

Všimněte si, že pokud šířka oblasti vyrovnávací paměti překročí šířku okna konzoly, hodnota WindowLeft vlastnosti se automaticky upraví, když uživatel použije vodorovný posuvník k definování vztahu okna k oblasti vyrovnávací paměti.

Při pokusu WindowLeft o nastavení hodnoty vlastnosti při přesměrování výstupu dojde k výjimce IOException . Chcete-li zabránit výjimce, můžete nastavit hodnotu této vlastnosti pouze v případě, že IsOutputRedirected vlastnost vrátí false.

Platí pro