Console.WindowLeft Propiedad

Definición

Obtiene o establece la posición más a la izquierda del área de la ventana de la consola con respecto al búfer de pantalla.Gets or sets the leftmost position of the console window area relative to the screen buffer.

public:
 static property int WindowLeft { int get(); void set(int value); };
[set: System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static int WindowLeft { get; 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

Valor de propiedad

Int32

Posición más a la izquierda de la ventana de la consola, medida en columnas.The leftmost console window position measured in columns.

Atributos

Excepciones

En una operación set, el valor que se asigna es menor que cero.In a set operation, the value to be assigned is less than zero.

O bien-or-

Como resultado de la asignación, WindowLeft más WindowWidth superaría BufferWidth.As a result of the assignment, WindowLeft plus WindowWidth would exceed BufferWidth.

Error al leer o escribir información.Error reading or writing information.

Se invoca la operación Set en un sistema operativo distinto de Windows.The set operation is invoked on an operating system other than Windows.

Ejemplos

En el ejemplo siguiente se abre una ventana de consola de 80 columnas y se define un área de búfer de 120 columnas de ancho.The following example opens an 80-column console window and defines a buffer area that is 120 columns wide. Muestra información sobre el tamaño de la ventana y del búfer y, a continuación, espera a que el usuario presione la tecla de flecha izquierda o la tecla de dirección derecha.It displays information on window and buffer size, and then waits for the user to press either the LEFT ARROW key or the RIGHT ARROW key. En el caso anterior, disminuye el valor de la WindowLeft propiedad en uno si el resultado es un valor válido.In the former case, it decrements the value of the WindowLeft property by one if the result is a legal value. En el último caso, aumenta el valor de la WindowLeft propiedad en uno si el resultado sería legal.In the latter case, it increases the value of the WindowLeft property by one if the result would be legal. Tenga en cuenta que el ejemplo no tiene que controlar un ArgumentOutOfRangeException , porque comprueba que el valor que se va a asignar a la WindowLeft propiedad no es negativo y no hace que la suma de las WindowLeft WindowWidth propiedades y supere el BufferWidth valor de propiedad.Note that the example does not have to handle an ArgumentOutOfRangeException, because it checks that the value to be assigned to the WindowLeft property is not negative and does not cause the sum of the WindowLeft and WindowWidth properties to exceed the BufferWidth property value.

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.");
   }
}
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

Comentarios

La consola representa una ventana rectangular en un área de búfer rectangular más grande.The console represents a rectangular window into a larger rectangular buffer area. Tanto la ventana como el búfer se miden verticalmente por su número de filas y horizontalmente por el número de columnas.Both the window and the buffer are measured vertically by their number of rows and horizontally by their number of columns. Las dimensiones del área de búfer se definen mediante las BufferHeight BufferWidth propiedades y.The dimensions of the buffer area are defined by the BufferHeight and BufferWidth properties. Las dimensiones del área de la consola están definidas por WindowHeight las WindowWidth propiedades y.The dimensions of the console area are defined by the WindowHeight and WindowWidth properties. La WindowLeft propiedad determina qué columna del área del búfer se muestra en la primera columna de la ventana de la consola.The WindowLeft property determines which column of the buffer area is displayed in the first column of the console window. El valor de la WindowLeft propiedad puede oscilar entre 0 y BufferWidth - WindowWidth .The value of the WindowLeft property can range from 0 to BufferWidth - WindowWidth. Al intentar establecerlo en un valor fuera de ese intervalo, se produce una excepción ArgumentOutOfRangeException .Attempting to set it to a value outside that range throws an ArgumentOutOfRangeException.

Cuando se abre por primera vez una ventana de la consola, el valor predeterminado de la WindowLeft propiedad es cero, lo que indica que la primera columna que muestra la consola de corresponde a la primera columna (la columna en la posición cero) en el área del búfer.When a console window first opens, the default value of the WindowLeft property is zero, which indicates that the first column shown by the console corresponds to the first column (the column at position zero) in the buffer area. El ancho predeterminado de la ventana de la consola y del área del búfer es de 80 columnas.The default width of both the console window and the buffer area is 80 columns. Esto significa que WindowLeft solo se puede modificar la propiedad si la ventana de la consola se hace más estrecha o si el área del búfer se hace más ancha.This means that the WindowLeft property can be modified only if the console window is made narrower or the buffer area is made wider.

Tenga en cuenta que si el ancho del área del búfer supera el ancho de la ventana de la consola, el valor de la WindowLeft propiedad se ajusta automáticamente cuando el usuario usa la barra de desplazamiento horizontal para definir la relación de la ventana con el área del búfer.Note that if the width of the buffer area exceeds the width of the console window, the value of the WindowLeft property is automatically adjusted when the user uses the horizontal scroll bar to define the window's relationship to the buffer area.

Al intentar establecer el valor de la WindowLeft propiedad cuando la salida se redirige, se produce una IOException excepción.Attempting to set the value of the WindowLeft property when output is redirected throws an IOException exception. Para evitar la excepción, puede establecer el valor de esta propiedad solo si la IsOutputRedirected propiedad devuelve false .To prevent the exception, you can set the value of this property only if the IsOutputRedirected property returns false.

Se aplica a