提示用户在关闭表单之前提交更改

本文关键字:前提 提交 表单 用户 提示 | 更新日期: 2023-09-27 18:15:56

我正在做一个大型的。net 4.0 c#项目,涉及几个小组。我的任务是修改一个表单,以提示用户提交更改。我需要修改的表单有"提交更改","确定","取消"按钮。目前,没有"确定"answers"取消"按钮触发的事件。

如果用户做了任何更改,但没有提交,按下"Ok"按钮应该会生成一个MessageBox来引导用户提交他/她的更改。这就是我的问题所在。

我让"Ok"按钮触发一个事件buttonOk_Click来检查更改。这里的问题是,既然"确定"按钮已经被按下,我不知道如何阻止表单关闭,以允许用户保存他/她的更改。我不能修改调用表单的代码,因为它是另一个组的一部分。

如何阻止窗体关闭以允许用户保存更改?

提示用户在关闭表单之前提交更改

设置Form dialgresult属性为dialgresult。没有一个

 form1.DialogResult = DialogResult.None;

dialgresult枚举与窗体和按钮上的同名属性相结合,用于控制模态窗体的关闭方式以及返回给调用者的值。
例如,按下一个按钮时,它的dialgresult属性设置为OK,将强制模式窗体从ShowDialog()方法中退出,返回值设置为dialgresult .OK。

using(Form1 f = new Form1())
{
    if(f.ShowDialog() == DialogResult.OK)
    {
        // Perform post confirmation task on the form data
    }
}
// You may use FormClosing Event of Form
  private void yourForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Want to exit from Application ?",  MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                Environment.Exit(0);
            }
            else
            {
                // your Code for Changes or anything you want to allow user changes etc.
                e.Cancel = true;
            }
        }

谢谢Bhavin Chhatrola;如果您允许的话,可以稍微修改一下:)

 private void yourForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     if (MessageBox.Show("Want to exit from Application ?",  MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         //Environment.Exit(0);
         e.Cancel = false;
     }
     else
     {
         // your Code for Changes or anything you want to allow user changes etc.
         e.Cancel = true;    
     }    
}