【问题标题】:Prompt the user to submit changes before closing form在关闭表单之前提示用户提交更改
【发布时间】:2013-05-28 15:34:50
【问题描述】:

我正在处理一个跨越几个小组的大型 .NET 4.0 C# 项目。我的任务是修改表单以提示用户提交更改。我需要修改的表单有一个“提交更改”、“确定”、“取消”按钮。目前,没有由“确定”和“取消”按钮触发的事件。

如果用户做了任何更改,但没有提交,按下“确定”按钮应该会生成一个 MessageBox 来指导用户提交他/她的更改。这就是我的问题发生的地方。

我让“确定”按钮触发了一个事件 buttonOk_Click 来检查更改。这里的问题是,由于已经按下“确定”按钮,我不确定如何阻止表单关闭以允许用户保存他/她的更改。我无法修改调用表单的代码,因为它是另一个组的一部分。

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

【问题讨论】:

  • 只是作为一个书呆子,事件OkCancel按钮触发的,你只是没有碰巧在听他们:)跨度>
  • 我建议这里的正确解决方法是完全删除确定按钮。它有什么用途?

标签: c# .net winforms windows-forms-designer


【解决方案1】:

将 Form DialogResult 属性设置为 DialogResult.None

 form1.DialogResult = DialogResult.None;

DialogResult enumeration 加上窗体和按钮上的同名属性,用于控制模态窗体如何关闭以及向调用者返回什么值。
例如,按下 DialogResult 属性设置为 OK 的按钮将强制模式表单退出 ShowDialog() 方法,返回值设置为 DialogResult.OK。

using(Form1 f = new Form1())
{
    if(f.ShowDialog() == DialogResult.OK)
    {
        // Perform post confirmation task on the form data
    }
}

【讨论】:

  • 也许可以解释一下你的答案的结果是什么(尽管它可能看起来有点明显)。
  • @Subby,是的,我正在写这个
【解决方案2】:
// 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;

            }

        }

【讨论】:

    【解决方案3】:

    感谢 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;    
         }    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 2013-09-01
      相关资源
      最近更新 更多