Console.WindowLeft Propriedade

Definição

Obtém ou define a posição mais à esquerda da área da janela da consola em relação ao buffer do ecrã.

public:
 static property int WindowLeft { int get(); void set(int value); };
public static int WindowLeft { get; set; }
static member WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer

Valor de Propriedade

A posição da janela do console mais à esquerda era medida em colunas.

Exceções

Numa operação de conjunto, o valor a ser atribuído é menor que zero.

-ou-

Como resultado da atribuição, WindowLeft mais WindowWidth excederia BufferWidth.

Erro de leitura ou escrita de informação.

A operação de set é invocada num sistema operativo diferente do Windows.

Exemplos

O exemplo seguinte abre uma janela de consola de 80 colunas e define uma área de buffer com 120 colunas de largura. Apresenta informações sobre o tamanho da janela e do buffer, e depois espera que o utilizador pressione a tecla SETA ESQUERDA ou a SETA DIREITA. No primeiro caso, diminui o valor da WindowLeft propriedade em um se o resultado for um valor legal. Neste último caso, aumenta o valor da WindowLeft propriedade em um se o resultado for legal. Note-se que o exemplo não tem de tratar um ArgumentOutOfRangeException, porque verifica se o valor a atribuir à WindowLeft propriedade não é negativo e não faz com que a soma das WindowLeft propriedades e WindowWidth exceda o BufferWidth valor da propriedade.

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

Observações

A consola representa uma janela retangular para uma área de tampão retangular maior. Tanto a janela como o buffer são medidos verticalmente pelo número de linhas e horizontalmente pelo número de colunas. As dimensões da área tampão são definidas pelas BufferHeight propriedades e BufferWidth . As dimensões da área da consola são definidas pelas WindowHeight propriedades e WindowWidth . A WindowLeft propriedade determina qual a coluna da área do buffer que é exibida na primeira coluna da janela da consola. O valor da WindowLeft propriedade pode variar de 0 a - BufferWidthWindowWidth . Tentar defini-lo para um valor fora desse intervalo lança um ArgumentOutOfRangeException.

Quando uma janela de consola se abre pela primeira vez, o valor padrão da WindowLeft propriedade é zero, o que indica que a primeira coluna mostrada pela consola corresponde à primeira coluna (a coluna na posição zero) na área de buffer. A largura padrão tanto da janela da consola como da área do buffer é de 80 colunas. Isto significa que a WindowLeft propriedade só pode ser modificada se a janela da consola for mais estreita ou se a área do buffer for alargada.

Note que, se a largura da área do buffer exceder a largura da janela do console, o valor da WindowLeft propriedade é automaticamente ajustado quando o utilizador usa a barra de scroll horizontal para definir a relação da janela com a área do buffer.

Tentar definir o valor da WindowLeft propriedade quando a saída é redirecionada gera uma IOException exceção. Para evitar a exceção, só pode definir o valor desta propriedade se a IsOutputRedirected propriedade devolver false.

Aplica-se a