C#中点击窗体右上角的X然后询问是否关闭,是就关闭,不是就什么都不做

 
private void TestForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确定要关闭?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
e.Cancel = false;
this.Dispose();
}
else
{
e.Cancel = true;
}
}

在 WPF 窗体,可以通过重写 `OnClosing` 方法来实现用条件语句来限制窗体右上角关闭功能。具体实现步骤如下: 1. 在窗体重写 `OnClosing` 方法。 2. 在 `OnClosing` 方法添加条件语句,判断是否满足关闭窗体的条件。如果不满足条件,则将 `e.Cancel` 属性设置为 `true`,阻止窗体关闭。 3. 在 XAML 删除窗体默认的关闭按钮,使用自定义的关闭按钮,并将按钮的 `Click` 事件绑定到关闭窗体的方法。 下面是示例代码: ```csharp public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } protected override void OnClosing(CancelEventArgs e) { if (/* 判断是否满足关闭窗体的条件 */) { // 不满足条件,阻止窗体关闭 e.Cancel = true; } else { base.OnClosing(e); } } private void closeButton_Click(object sender, RoutedEventArgs e) { // 关闭窗体的方法 this.Close(); } } ``` 在 XAML ,可以使用以下代码来删除窗体默认的关闭按钮,以及添加自定义的关闭按钮: ```xml <Window ... Title="MainWindow" WindowStyle="None" <!-- 隐藏窗口边框和标题栏 --> > <Grid> <!-- 添加自定义的关闭按钮 --> <Button Name="closeButton" Content="X" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,5,5,0" Width="20" Height="20" Click="closeButton_Click"/> <!-- 窗口内容 --> </Grid> </Window> ``` 注意:使用自定义的关闭按钮后,需要手动实现窗体的拖动和最大化、最小化等功能。可以通过在按钮上添加鼠标事件来实现窗体的拖动,以及通过调用 `WindowState` 属性来实现窗体的最大化、最小化等功能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值