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.

예외

집합 작업에서 할당할 값이 0보다 작습니다.In a set operation, the value to be assigned is less than zero.

또는-or- 할당 결과, WindowLeftWindowWidth의 합이 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 속성을 결과 법적 값 이면 1 씩 합니다.In the former case, it decrements the value of the WindowLeft property by one if the result is a legal value. 후자의 경우에 값을 증가 하는 WindowLeft 속성을 결과 법적 되는 경우 1입니다.In the latter case, it increases the value of the WindowLeft property by one if the result would be legal. 예제를 처리할 필요가 없습니다는 ArgumentOutOfRangeException확인 하기 때문에에 할당할 값을 WindowLeft 속성이 음수 이며의 합계를 발생 하지 않습니다는 WindowLeftWindowWidth 초과 하는 속성을 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 += 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

설명

콘솔에 더 큰 버퍼 사각형 영역을 사각형 창을 나타냅니다.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. 버퍼 영역의 크기에 의해 정의 됩니다 합니다 BufferHeightBufferWidth 속성입니다.The dimensions of the buffer area are defined by the BufferHeight and BufferWidth properties. 콘솔 영역의 크기에 의해 정의 됩니다 합니다 WindowHeightWindowWidth 속성입니다.The 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 - WindowWidth합니다.The value of the WindowLeft property can range from 0 to BufferWidth - WindowWidth. Throw 범위를 벗어나는 값으로 설정 하려고 한 ArgumentOutOfRangeException합니다.Attempting to set it to a value outside that range throws an ArgumentOutOfRangeException.

콘솔 창이 처음 열리면, 기본값인은 WindowLeft 속성은 0 이며이 콘솔에 표시 된 첫 번째 열 버퍼 영역에서 첫 번째 열 (위치 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 출력 되 면 속성 리디렉션 throw는 IOException 예외.Attempting to set the value of the WindowLeft property when output is redirected throws an IOException exception. 예외를 방지 하려면 경우에만이 속성의 값을 설정할 수 있습니다 합니다 IsOutputRedirected 속성이 반환 false합니다.To prevent the exception, you can set the value of this property only if the IsOutputRedirected property returns false.

적용 대상