Console.WindowLeft Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit la position la plus à gauche de la zone de 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")>]
static member WindowLeft : int with get, set
static member WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer
Valeur de propriété
Position de la fenêtre de console la plus à gauche mesurée dans les colonnes.
- Attributs
Exceptions
Dans une opération définie, la valeur à attribuer est inférieure à zéro.
- ou -
En raison de l’affectation, WindowLeft plus WindowWidth dépasserait BufferWidth.
Erreur lors de la lecture ou de l’écriture d’informations.
L’opération set est appelé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 de 120 colonnes à l’échelle. 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 flèche gauche ou la touche FLÈCHE DROITE. Dans l’ancien cas, il décrémente la valeur de la WindowLeft propriété par un si le résultat est une valeur légale. Dans ce dernier cas, il augmente la valeur de la WindowLeft propriété par un si le résultat serait légal. Notez que l’exemple n’a pas à gérer un ArgumentOutOfRangeException, car il vérifie que la valeur à affecter à la WindowLeft propriété n’est pas négative et n’entraîne pas la somme des propriétés et WindowWidth dépasse la valeur de WindowLeft la BufferWidth proprié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
Remarques
La console représente une fenêtre rectangulaire dans une zone tampon rectangulaire plus grande. La fenêtre et la mémoire tampon sont mesurées verticalement par leur nombre de lignes et horizontalement par leur nombre de colonnes. Les dimensions de la zone de mémoire tampon sont définies par les propriétés et BufferWidth les BufferHeight propriétés. Les dimensions de la zone de console sont définies par les propriétés et WindowWidth les WindowHeight propriétés. La WindowLeft propriété détermine la colonne de la zone tampon affichée dans la première colonne de la fenêtre de console. La valeur de la WindowLeft propriété peut aller de 0 à - BufferWidthWindowWidth . La tentative de la définir sur une valeur en dehors de cette plage lève un ArgumentOutOfRangeException.
Lorsqu’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 affiché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 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 plus étroite ou si la zone de mémoire tampon est 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 automatiquement ajustée lorsque l’utilisateur utilise la barre de défilement horizontale pour définir la relation de la fenêtre à la zone tampon.
La tentative de définition de la valeur de la propriété lorsque la WindowLeft sortie est redirigée lève une IOException exception. Pour empêcher l’exception, vous pouvez définir la valeur de cette propriété uniquement si la IsOutputRedirected propriété retourne false.