海量编程文章、技术教程与实战案例

网站首页 > 技术文章 正文

在关闭窗口前加入确认对话框-C#学习进阶

yimeika 2025-06-17 01:49:58 技术文章 8 ℃

实例说明

用户对程序进行操作时,难免会有错误操作的情况,例如不小心关闭程序,如果尚有许多资料没有保存,那么损失将非常严重,所以最好使程序具有灵活的交互性。人机交互过程一般都是通过对话框来实现的,对话框中有提示信息,并且提供按钮让用户选择,例如“是”或“否”。这样用户就能够对所做的动作进行确认。正如前面所说的不小心关闭程序,如果在关闭程序之前提示用户将要关闭程序,并且提供用户选择是否继续下去,这样就大大减少了误操作现象。本例程序中的窗口在关闭时会显示一个对话框,该对话框中有两个按钮“是”与“否”代表是否同意关闭程序操作。

技术要点

窗口正要关闭但是没有关闭之前会触发FormClosing事件,该事件中的参数FormClosingEventArgs e中包含Cancel属性,如果设置该属性为True,窗口将不会被关闭。所以在该事件处理代码中可以提示用户是否关闭程序,如果用户不想关闭程序,则设置该参数为True。利用MessageBox参数的返回值可以知道用户所选择的按钮。下面详细介绍一下相关属性。

CancelEventArgs.Cancel属性用来获取或设置指示是否应取消事件的值。其语法格式如下:

public bool Cancel { get; set; }

l 属性值:如果应取消事件,则为True;否则为False。

实现过程

(1)创建一个项目,将其命名为QueryClose,默认窗体为Form1。

(2)主要程序代码。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    //当单击“是”时
    if (MessageBox.Show("将要要关闭窗体,是否继续?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
        e.Cancel = false;                   //不取消事件的值
    }
    else当单击“否”时
    {
        e.Cancel = true;                    //取消事件的值
    }
}


最近发表
标签列表