ConsoleCancelEventArgs.Cancel プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
public:
property bool Cancel { bool get(); void set(bool value); };
public bool Cancel { get; set; }
member this.Cancel : bool with get, set
Public Property Cancel As Boolean
プロパティ値
イベント ハンドラーの終了時に現在のプロセスを再開する場合は、true
。現在のプロセスを終了する場合は、false
。 既定値は false
です。現在のプロセスは、イベント ハンドラーが返されると終了します。
true
の場合、現在のプロセスが継続されます。
例
次の例では、 プロパティを使用してイベントを Cancel 処理する方法を示します。
using namespace System;
void OnCancelKeyPressed(Object^ sender,
ConsoleCancelEventArgs^ args)
{
Console::WriteLine("{0}The read operation has been interrupted.",
Environment::NewLine);
Console::WriteLine(" Key pressed: {0}", args->SpecialKey);
Console::WriteLine(" Cancel property: {0}", args->Cancel);
// Set the Cancel property to true to prevent the process from
// terminating.
Console::WriteLine("Setting the Cancel property to true...");
args->Cancel = true;
// Announce the new value of the Cancel property.
Console::WriteLine(" Cancel property: {0}", args->Cancel);
Console::WriteLine("The read operation will resume...{0}",
Environment::NewLine);
}
int main()
{
// Clear the screen.
Console::Clear();
// Establish an event handler to process key press events.
Console::CancelKeyPress +=
gcnew ConsoleCancelEventHandler(OnCancelKeyPressed);
while (true)
{
// Prompt the user.
Console::Write("Press any key, or 'X' to quit, or ");
Console::WriteLine("CTRL+C to interrupt the read operation:");
// Start a console read operation. Do not display the input.
ConsoleKeyInfo^ keyInfo = Console::ReadKey(true);
// Announce the name of the key that was pressed .
Console::WriteLine(" Key pressed: {0}{1}", keyInfo->Key,
Environment::NewLine);
// Exit if the user pressed the 'X' key.
if (keyInfo->Key == ConsoleKey::X)
{
break;
}
}
}
// The example displays output similar to the following:
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: J
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: Enter
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
//
// The read operation has been interrupted.
// Key pressed: ControlC
// Cancel property: False
// Setting the Cancel property to true...
// Cancel property: True
// The read operation will resume...
//
// Key pressed: Q
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: X
using System;
class Sample
{
public static void Main()
{
ConsoleKeyInfo cki;
Console.Clear();
// Establish an event handler to process key press events.
Console.CancelKeyPress += new ConsoleCancelEventHandler(myHandler);
while (true)
{
Console.Write("Press any key, or 'X' to quit, or ");
Console.WriteLine("CTRL+C to interrupt the read operation:");
// Start a console read operation. Do not display the input.
cki = Console.ReadKey(true);
// Announce the name of the key that was pressed .
Console.WriteLine($" Key pressed: {cki.Key}\n");
// Exit if the user pressed the 'X' key.
if (cki.Key == ConsoleKey.X) break;
}
}
protected static void myHandler(object sender, ConsoleCancelEventArgs args)
{
Console.WriteLine("\nThe read operation has been interrupted.");
Console.WriteLine($" Key pressed: {args.SpecialKey}");
Console.WriteLine($" Cancel property: {args.Cancel}");
// Set the Cancel property to true to prevent the process from terminating.
Console.WriteLine("Setting the Cancel property to true...");
args.Cancel = true;
// Announce the new value of the Cancel property.
Console.WriteLine($" Cancel property: {args.Cancel}");
Console.WriteLine("The read operation will resume...\n");
}
}
// The example displays output similar to the following:
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: J
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: Enter
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
//
// The read operation has been interrupted.
// Key pressed: ControlC
// Cancel property: False
// Setting the Cancel property to true...
// Cancel property: True
// The read operation will resume...
//
// Key pressed: Q
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: X
open System
let myHandler sender (args: ConsoleCancelEventArgs) =
printfn "\nThe read operation has been interrupted."
printfn $" Key pressed: {args.SpecialKey}"
printfn $" Cancel property: {args.Cancel}"
// Set the Cancel property to true to prevent the process from terminating.
printfn "Setting the Cancel property to true..."
args.Cancel <- true
// Announce the new value of the Cancel property.
printfn $" Cancel property: {args.Cancel}"
printfn "The read operation will resume...\n"
// Establish an event handler to process key press events.
Console.CancelKeyPress.AddHandler(ConsoleCancelEventHandler myHandler)
let mutable quit = false
while not quit do
printf "Press any key, or 'X' to quit, or "
printfn "CTRL+C to interrupt the read operation:"
// Start a console read operation. Do not display the input.
let cki = Console.ReadKey true
// Announce the name of the key that was pressed .
printfn $" Key pressed: {cki.Key}\n"
// Exit if the user pressed the 'X' key.
if cki.Key = ConsoleKey.X then
quit <- true
// The example displays output similar to the following:
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: J
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: Enter
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
//
// The read operation has been interrupted.
// Key pressed: ControlC
// Cancel property: False
// Setting the Cancel property to true...
// Cancel property: True
// The read operation will resume...
//
// Key pressed: Q
//
// Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
// Key pressed: X
Class Sample
Public Shared Sub Main()
Dim cki As ConsoleKeyInfo
Console.Clear()
' Establish an event handler to process key press events.
AddHandler Console.CancelKeyPress, AddressOf myHandler
While True
Console.Write("Press any key, or 'X' to quit, or ")
Console.WriteLine("CTRL+C to interrupt the read operation:")
' Start a console read operation. Do not display the input.
cki = Console.ReadKey(True)
' Announce the name of the key that was pressed .
Console.WriteLine($" Key pressed: {cki.Key}{vbCrLf}")
' Exit if the user pressed the 'X' key.
If cki.Key = ConsoleKey.X Then Exit While
End While
End Sub
Protected Shared Sub myHandler(ByVal sender As Object, _
ByVal args As ConsoleCancelEventArgs)
Console.WriteLine($"{vbCrLf}The read operation has been interrupted.")
Console.WriteLine($" Key pressed: {args.SpecialKey}")
Console.WriteLine($" Cancel property: {args.Cancel}")
' Set the Cancel property to true to prevent the process from terminating.
Console.WriteLine("Setting the Cancel property to true...")
args.Cancel = True
' Announce the new value of the Cancel property.
Console.WriteLine($" Cancel property: {args.Cancel}")
Console.WriteLine($"The read operation will resume...{vbCrLf}")
End Sub
End Class
' The example diplays output similar to the following:
' Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
' Key pressed: J
'
' Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
' Key pressed: Enter
'
' Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
'
' The read operation has been interrupted.
' Key pressed: ControlC
' Cancel property: False
' Setting the Cancel property to true...
' Cancel property: True
' The read operation will resume...
'
' Key pressed: Q
'
' Press any key, or 'X' to quit, or CTRL+C to interrupt the read operation:
' Key pressed: X
注釈
イベントのCancelハンドラーが呼び出されると、 プロパティは に自動的にCancelKeyPress初期化false
されます。 イベント ハンドラーが Cancel 終了したときの プロパティの値によって、現在のプロセスが再開されるか終了するかが決まります。
Ctrl + C キーを押した後の設定操作では、 を指定 true
して、イベント ハンドラーが終了したときに現在のプロセスを再開する必要があることを示すか false
、現在のプロセスを終了する必要があることを示します。
注意 (呼び出し元)
.NET Framework 3.5 と .NET Framework 4 では、Ctrl キーを押しながら Break キーを押してイベントが呼び出された場合CancelKeyPressに プロパティを にtrue
設定Cancelしようとすると、例外がInvalidOperationExceptionスローされました。 .NET Framework 4.5 では、ユーザーが Cancel Ctrl + Break キーを押してアプリケーションの終了を取り消した後に、 プロパティを にtrue
設定できます。
適用対象
こちらもご覧ください
.NET