Console.WindowLeft Egenskap

Definition

Hämtar eller anger den vänstra positionen för konsolfönstrets område i förhållande till skärmbufferten.

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

Egenskapsvärde

Konsolfönstrets position längst till vänster mätt i kolumner.

Attribut

Undantag

I en uppsättningsåtgärd är värdet som ska tilldelas mindre än noll.

-eller-

Som ett resultat av tilldelningen WindowLeft skulle plus WindowWidth överskrida BufferWidth.

Det gick inte att läsa eller skriva information.

Set-åtgärden anropas på ett annat operativsystem än Windows.

Exempel

I följande exempel öppnas ett konsolfönster med 80 kolumner och definierar ett buffertområde som är 120 kolumner brett. Den visar information om fönstret och buffertstorleken och väntar sedan på att användaren ska trycka på antingen VÄNSTERPIL eller HÖGERPIL. I det tidigare fallet minskar värdet på WindowLeft egenskapen med ett om resultatet är ett juridiskt värde. I det senare fallet ökar värdet på WindowLeft fastigheten med ett om resultatet skulle vara lagligt. Observera att exemplet inte behöver hantera en ArgumentOutOfRangeException, eftersom det kontrollerar att värdet som ska tilldelas egenskapen WindowLeft inte är negativt och inte gör att summan av WindowLeft egenskaperna och WindowWidth överskrider egenskapsvärdet BufferWidth .

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

Kommentarer

Konsolen representerar ett rektangulärt fönster till ett större rektangulärt buffertområde. Både fönstret och bufferten mäts lodrätt med antalet rader och vågrätt efter antalet kolumner. Buffertområdets dimensioner definieras av BufferHeight egenskaperna och BufferWidth . Konsolområdets dimensioner definieras av WindowHeight egenskaperna och WindowWidth . Egenskapen WindowLeft avgör vilken kolumn i buffertområdet som visas i den första kolumnen i konsolfönstret. Värdet för WindowLeft egenskapen kan variera från 0 tillBufferWidth - WindowWidth . Om du försöker ange det till ett värde utanför det området utlöser ett ArgumentOutOfRangeException.

När ett konsolfönster öppnas först är standardvärdet för WindowLeft egenskapen noll, vilket anger att den första kolumnen som visas av konsolen motsvarar den första kolumnen (kolumnen vid position noll) i buffertområdet. Standardbredden för både konsolfönstret och buffertområdet är 80 kolumner. Det innebär att WindowLeft egenskapen endast kan ändras om konsolfönstret är smalare eller om buffertområdet görs bredare.

Observera att om buffertområdets bredd överskrider konsolfönstrets bredd justeras värdet WindowLeft för egenskapen automatiskt när användaren använder den vågräta rullningslisten för att definiera fönstrets relation till buffertområdet.

Om du försöker ange värdet för WindowLeft egenskapen när utdata omdirigeras genereras ett IOException undantag. För att förhindra undantaget kan du bara ange värdet för den här egenskapen om egenskapen IsOutputRedirected returnerar false.

Gäller för