点关闭按钮,提示是否确认退出

TForm1.FormCloseQuery是自身有的属性。

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  try
    if Application.MessageBox('确定退出本软件吗?','询问',MB_OKCANCEL+MB_ICONQUESTION)=IDOK then
    begin
      CanClose:=True;
    end
    else
      CanClose:=False;
  except
    Exit;
  end;
end;

在 C# 的控制台应用中,没有窗体的概念,所以无法在关闭窗体时增加确认按钮。不过你可以使用 Console.TreatControlCAsInput 属性来实现在用户按下 Ctrl+C 时增加确认按钮。具体实现方法如下: 1.将 Console.TreatControlCAsInput 属性设置为 true,这样当用户按下 Ctrl+C 时,控制台应用不会立即退出,而是等待用户输入 Y 或 N。 2.在需要增加确认按钮的地方,输出提示信息,例如 "按下 Ctrl+C 退出是否确认?(Y/N)"。 3.调用 Console.ReadKey() 方法,等待用户输入 Y 或 N。 4.如果用户输入 Y,则退出应用;否则继续执行应用。 下面是一个示例代码: ``` static void Main(string[] args) { Console.TreatControlCAsInput = true; Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress); while (true) { Console.WriteLine("按下 Ctrl+C 退出是否确认?(Y/N)"); var key = Console.ReadKey(); if (key.Key == ConsoleKey.Y) break; } } static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e) { e.Cancel = true; while (true) { Console.WriteLine("按下 Ctrl+C 退出是否确认?(Y/N)"); var key = Console.ReadKey(); if (key.Key == ConsoleKey.Y) { Environment.Exit(0); break; } else if (key.Key == ConsoleKey.N) { e.Cancel = false; break; } } } ``` 当用户按下 Ctrl+C 时,程序会等待用户输入 Y 或 N。如果用户输入 Y,则程序会退出;否则程序继续执行。需要注意的是,这种方法只能处理 Ctrl+C 信号,对于其他信号可能无法生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值