Console.WindowLeft Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta la posizione più a sinistra dell'area della finestra della console rispetto al buffer dello schermo.
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
Valore della proprietà
Posizione della finestra della console più a sinistra misurata in colonne.
- Attributi
Eccezioni
In un'operazione set il valore da assegnare è minore di zero.
oppure
In seguito all'assegnazione, WindowLeft più WindowWidth supererebbe BufferWidth.
Errore durante la lettura o la scrittura di informazioni.
L'operazione set viene richiamata in un sistema operativo diverso da Windows.
Esempio
Nell'esempio seguente viene aperta una finestra della console a 80 colonne e viene definita un'area del buffer di 120 colonne a larghezza. Visualizza informazioni sulle dimensioni della finestra e del buffer e quindi attende che l'utente preme il tasto FRECCIA SINISTRA o il tasto FRECCIA DESTRA. Nel caso precedente, decrementa il valore della WindowLeft proprietà di uno se il risultato è un valore legale. In quest'ultimo caso, aumenta il valore della WindowLeft proprietà di uno se il risultato sarebbe legale. Si noti che l'esempio non deve gestire un ArgumentOutOfRangeExceptionoggetto perché verifica che il valore da assegnare alla WindowLeft proprietà non sia negativo e che la somma delle proprietà e WindowWidth superi il valore della WindowLeftBufferWidth proprietà.
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
Commenti
La console rappresenta una finestra rettangolare in un'area del buffer rettangolare più grande. Sia la finestra che il buffer vengono misurati verticalmente in base al numero di righe e orizzontalmente in base al numero di colonne. Le dimensioni dell'area del buffer sono definite dalle BufferHeight proprietà e BufferWidth . Le dimensioni dell'area della console sono definite dalle WindowHeight proprietà e WindowWidth . La WindowLeft proprietà determina quale colonna dell'area del buffer viene visualizzata nella prima colonna della finestra della console. Il valore della WindowLeft proprietà può variare da 0 a - BufferWidthWindowWidth . Il tentativo di impostarlo su un valore esterno a tale intervallo genera un'eccezione ArgumentOutOfRangeException.
Quando si apre per la prima volta una finestra della console, il valore predefinito della WindowLeft proprietà è zero, che indica che la prima colonna visualizzata dalla console corrisponde alla prima colonna (la colonna in corrispondenza della posizione zero) nell'area del buffer. La larghezza predefinita sia della finestra della console che dell'area del buffer è di 80 colonne. Ciò significa che la WindowLeft proprietà può essere modificata solo se la finestra della console viene ridotta o l'area del buffer viene resa più ampia.
Si noti che se la larghezza dell'area del buffer supera la larghezza della finestra della WindowLeft console, il valore della proprietà viene modificato automaticamente quando l'utente usa la barra di scorrimento orizzontale per definire la relazione della finestra con l'area del buffer.
Il tentativo di impostare il valore della proprietà quando l'output WindowLeft viene reindirizzato genera un'eccezione IOException . Per evitare l'eccezione, è possibile impostare il valore di questa proprietà solo se la IsOutputRedirected proprietà restituisce false.