Console.WindowLeft Console.WindowLeft Console.WindowLeft Console.WindowLeft Property

Определение

Возвращает или задает позицию левого края области окна консоли относительно буфера экрана.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); };
public static int WindowLeft { get; set; }
member this.WindowLeft : int with get, set
Public Shared Property WindowLeft As Integer

Значение свойства

Позиция левого края области окна консоли измеряется столбцами.The leftmost console window position measured in columns.

Исключения

В операции над множеством назначаемое значение меньше нуля.In a set operation, the value to be assigned is less than zero.

-или--or- Как результат назначения, свойство WindowLeft плюс свойство WindowWidth превысят свойство BufferWidth.As a result of the assignment, WindowLeft plus WindowWidth would exceed BufferWidth.

Ошибка при чтении или записи данных.Error reading or writing information.

Операция задания вызывается в операционной системе, отличной от Windows.The set operation is invoked on an operating system other than Windows.

Примеры

В следующем примере открывается окно консоли 80-столбца и определяется область буфера, которая имеет ширину 120 столбцов.The following example opens an 80-column console window and defines a buffer area that is 120 columns wide. Он отображает сведения о размере окон и буферов, а затем ждет нажатия пользователем клавиши со стрелкой влево или клавиши со стрелкой вправо.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. В первом случае значение WindowLeft свойства уменьшается на единицу, если результат является допустимым значением.In the former case, it decrements the value of the WindowLeft property by one if the result is a legal value. В последнем случае значение WindowLeft свойства увеличивается на единицу, если результат будет юридическим.In the latter case, it increases the value of the WindowLeft property by one if the result would be legal. Обратите внимание, что в этом примере не требуется ArgumentOutOfRangeExceptionобрабатывать, так как он проверяет, что значение, присваиваемое WindowLeft свойству, не является отрицательным и не WindowLeft приводит к превышению WindowWidth BufferWidth значения свойства и. значение свойства.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 = 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);
   }

   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

Комментарии

Консоль представляет прямоугольное окно в более крупную прямоугольную область буфера.The console represents a rectangular window into a larger rectangular buffer area. Окно и буфер измеряются вертикально по числу строк и по горизонтали по числу столбцов.Both the window and the buffer are measured vertically by their number of rows and horizontally by their number of columns. Размеры буферной области определяются BufferHeight свойствами и. BufferWidthThe dimensions of the buffer area are defined by the BufferHeight and BufferWidth properties. Размеры области консоли определяются WindowHeight свойствами и. WindowWidthThe dimensions of the console area are defined by the WindowHeight and WindowWidth properties. WindowLeft Свойство определяет, какой столбец буферной области отображается в первом столбце окна консоли.The WindowLeft property determines which column of the buffer area is displayed in the first column of the console window. Значение WindowLeft свойства может находиться в диапазоне от 0 до BufferWidth. - WindowWidthThe value of the WindowLeft property can range from 0 to BufferWidth - WindowWidth. При попытке задать значение вне этого диапазона возникает исключение ArgumentOutOfRangeException.Attempting to set it to a value outside that range throws an ArgumentOutOfRangeException.

При первом открытии окна консоли значение WindowLeft свойства по умолчанию равно нулю. Это означает, что первый столбец, отображаемый консолью, соответствует первому столбцу (столбец в позиции 0) в буферной области.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. Ширина по умолчанию для окна консоли и буферной области составляет 80 столбцов.The default width of both the console window and the buffer area is 80 columns. Это означает, что WindowLeft свойство может быть изменено только в том случае, если окно консоли становится более узким, или буферная область становится шире.This means that the WindowLeft property can be modified only if the console window is made narrower or the buffer area is made wider.

Обратите внимание, что если ширина буферной области превышает ширину окна консоли, значение WindowLeft свойства автоматически корректируется, когда пользователь использует горизонтальную полосу прокрутки для определения связи окна с буферной областью.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.

Попытка задать значение WindowLeft свойства при перенаправлении IOException вывода вызывает исключение.Attempting to set the value of the WindowLeft property when output is redirected throws an IOException exception. Чтобы предотвратить исключение, значение этого свойства можно задать только в IsOutputRedirected том случае, если свойство возвращает. falseTo prevent the exception, you can set the value of this property only if the IsOutputRedirected property returns false.

Применяется к