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 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é
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
.