Console.WindowLeft プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コンソール ウィンドウ領域の左端の位置を、画面バッファーに対する相対位置として取得または設定します。
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
プロパティ値
コンソール ウィンドウの左端の位置 (列)。
- 属性
例外
読み取りまたは書き込み情報エラー。
セット操作は Windows 以外のオペレーティング システムで呼び出されています。
例
次の例では、80 列のコンソール ウィンドウを開き、幅が 120 列のバッファー領域を定義します。 ウィンドウとバッファー サイズに関する情報が表示され、ユーザーが左方向キーまたは右方向キーを押すのを待ちます。 前者の場合、結果が有効な値の場合、プロパティの WindowLeft 値が 1 ずつデクリメントされます。 後者の場合、結果が有効な場合は、プロパティの WindowLeft 値が 1 ずつ増加します。 この例では、プロパティに割り当てられる値が負の値ではなく、プロパティ値とWindowWidthプロパティのWindowLeft合計がプロパティ値をWindowLeft超えないことを確認するため、この例では 、処理ArgumentOutOfRangeExceptionする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
注釈
コンソールは、より大きな四角形のバッファー領域に四角形のウィンドウを表します。 ウィンドウとバッファーの両方が、行の数によって垂直方向に、列の数によって水平方向に測定されます。 バッファー領域のサイズは、プロパティによってBufferHeightBufferWidth定義されます。 コンソール領域の寸法は、プロパティによってWindowHeightWindowWidth定義されます。 このプロパティは WindowLeft 、コンソール ウィンドウの最初の列に表示されるバッファー領域の列を決定します。 プロパティの値の WindowLeft 範囲は 0 BufferWidth - WindowWidthから . その範囲外 ArgumentOutOfRangeExceptionの値に設定しようとすると、 .
コンソール ウィンドウが最初に開くと、プロパティの WindowLeft 既定値は 0 になります。これは、コンソールに表示される最初の列がバッファー領域の最初の列 (位置 0 の列) に対応することを示します。 コンソール ウィンドウとバッファー領域の両方の既定の幅は 80 列です。 つまり、コンソール ウィンドウを WindowLeft 狭くするか、バッファー領域を広くした場合にのみ、プロパティを変更できます。
バッファー領域の幅がコンソール ウィンドウの幅を超える場合、ユーザーが水平スクロール バーを使用してウィンドウと WindowLeft バッファー領域の関係を定義すると、プロパティの値が自動的に調整されることに注意してください。
出力がリダイレクトされるときにプロパティの値を WindowLeft 設定しようとすると、例外がスローされます IOException 。 例外を回避するには、プロパティが返false
された場合にのみ、このプロパティの値をIsOutputRedirected設定できます。