Partager via


Console.WindowLeft Propriété

Définition

Obtient ou définit la position la plus à gauche de la zone de la fenêtre de console par rapport à la mémoire tampon d'écran.

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")>]
member this.WindowLeft : int with get, set
member this.WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer

Valeur de propriété

Int32

Position de la fenêtre de console la plus à gauche mesurée en colonnes.

Attributs

Exceptions

Dans une opération ensembliste, la valeur à affecter est inférieure à zéro.

  • ou -

Suite à l’affectation, WindowLeft plus WindowWidth dépasseraient BufferWidth.

Erreur de lecture ou d’écriture des informations.

L’opération ensembliste est invoquée sur un système d’exploitation autre que Windows.

Exemples

L’exemple suivant ouvre une fenêtre de console de 80 colonnes et définit une zone de mémoire tampon d’une largeur de 120 colonnes. Il affiche des informations sur la taille de la fenêtre et de la mémoire tampon, puis attend que l’utilisateur appuie sur la touche de direction gauche ou sur la touche de direction droite. Dans le premier cas, il décrémente la valeur de la WindowLeft propriété d’une unité si le résultat est une valeur légale. Dans ce dernier cas, elle augmente la valeur de la WindowLeft propriété d’une unité si le résultat est légal. Notez que l’exemple n’a pas besoin de gérer un ArgumentOutOfRangeException , car il vérifie que la valeur à assigner à la WindowLeft propriété n’est pas négative et n’entraîne pas le dépassement de la valeur de propriété de la somme des WindowLeft WindowWidth Propriétés et BufferWidth .

using namespace System;

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

int 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);
}
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

Remarques

La console représente une fenêtre rectangulaire dans une zone de mémoire tampon rectangulaire plus grande. La fenêtre et la mémoire tampon sont mesurées verticalement en fonction de leur nombre de lignes et horizontalement en fonction de leur nombre de colonnes. Les dimensions de la zone de mémoire tampon sont définies par les BufferHeight BufferWidth Propriétés et. Les dimensions de la zone de la console sont définies par les WindowHeight WindowWidth Propriétés et. La WindowLeft propriété détermine quelle colonne de la zone de mémoire tampon est affichée dans la première colonne de la fenêtre de console. La valeur de la WindowLeft propriété peut être comprise entre 0 et BufferWidth - WindowWidth . Toute tentative de définition d’une valeur en dehors de cette plage lève une ArgumentOutOfRangeException .

Quand une fenêtre de console s’ouvre pour la première fois, la valeur par défaut de la WindowLeft propriété est zéro, ce qui indique que la première colonne indiquée par la console correspond à la première colonne (la colonne à la position zéro) dans la zone de mémoire tampon. La largeur par défaut de la fenêtre de console et de la zone de mémoire tampon est de 80 colonnes. Cela signifie que la WindowLeft propriété ne peut être modifiée que si la fenêtre de console est rendue plus étroite ou si la zone tampon est rendue plus large.

Notez que si la largeur de la zone de mémoire tampon dépasse la largeur de la fenêtre de console, la valeur de la WindowLeft propriété est ajustée automatiquement lorsque l’utilisateur utilise la barre de défilement horizontale pour définir la relation de la fenêtre avec la zone de mémoire tampon.

Toute tentative de définition de la valeur de la WindowLeft propriété lorsque la sortie est redirigée lève une IOException exception. Pour éviter l’exception, vous pouvez définir la valeur de cette propriété uniquement si la IsOutputRedirected propriété retourne false .

S’applique à