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 relativamente 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")>]
member this.WindowLeft : int with get, set
member this.WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer
Valore della proprietà
Posizione più a sinistra della finestra della console misurata in colonne.
- Attributi
Eccezioni
In un'operazione set il valore da assegnare è minore di zero.
-oppure-
In seguito all'assegnazione, la somma di WindowLeft e WindowWidth supererebbe BufferWidth.
Si è verificato un errore durante la lettura o la scrittura delle informazioni.
L'operazione set viene richiamata su un sistema operativo diverso da Windows.
Esempio
Nell'esempio seguente viene aperta una finestra della console di 80 colonne e viene definita un'area del buffer con una larghezza di 120 colonne. Visualizza informazioni sulle dimensioni della finestra e del buffer e quindi attende che l'utente premo il tasto FRECCIA SINISTRA o FRECCIA DESTRA. Nel primo caso, decrementa di uno il valore della proprietà se WindowLeft il risultato è un valore valido. Nel secondo caso, aumenta di uno il valore della WindowLeft proprietà se il risultato è valido. Si noti che l'esempio non deve gestire un oggetto , perché verifica che il valore da assegnare alla proprietà non sia negativo e non determina il superamento del valore della proprietà da parte della somma delle proprietà e ArgumentOutOfRangeException WindowLeft WindowLeft WindowWidth 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
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à BufferWidth e . Le dimensioni dell'area della console sono definite dalle WindowHeight proprietà WindowWidth e . 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 BufferWidth - WindowWidth . Il tentativo di impostarlo su un valore non compreso nell'intervallo genera un'eccezione ArgumentOutOfRangeException .
Quando si apre una finestra della console per la prima volta, il valore predefinito della proprietà è zero, a indicare che la prima colonna visualizzata dalla console corrisponde alla prima colonna (la colonna nella posizione WindowLeft zero) nell'area del buffer. La larghezza predefinita della finestra della console e dell'area del buffer è di 80 colonne. Ciò significa che la proprietà può essere modificata solo se la finestra della console viene ridotta o se WindowLeft l'area del buffer è più ampia.
Si noti che se la larghezza dell'area del buffer supera la larghezza della finestra della console, il valore della proprietà viene regolato automaticamente quando l'utente usa la barra di scorrimento orizzontale per definire la relazione della finestra con WindowLeft l'area del buffer.
Il tentativo di impostare il valore della proprietà WindowLeft quando l'output viene reindirizzato genera IOException un'eccezione. Per evitare l'eccezione, è possibile impostare il valore di questa proprietà solo se IsOutputRedirected la proprietà restituisce false
.