C# 在关闭表单之前提示用户提交更改
我正在从事一个大型的.NET4.0C项目,该项目跨越了几个小组。我的任务是修改表单以提示用户提交更改。我需要修改的表单有“提交更改”、“确定”和“取消”按钮。目前,没有由“确定”和“取消”按钮触发的事件 如果用户未提交任何更改,则按“确定”按钮应生成一个消息框,以引导用户提交其更改。这就是我的问题所在 我让Ok按钮触发一个事件按钮Ok_Click来检查更改。这里的问题是,由于已经按下了Ok按钮,我不确定如何停止表单关闭以允许用户保存他/她的更改。我无法修改调用表单的代码,因为它是另一个组的一部分 如何阻止表单关闭以允许用户保存其更改?将表单属性设置为DialogResult.NoneC# 在关闭表单之前提示用户提交更改,c#,.net,winforms,windows-forms-designer,C#,.net,Winforms,Windows Forms Designer,我正在从事一个大型的.NET4.0C项目,该项目跨越了几个小组。我的任务是修改表单以提示用户提交更改。我需要修改的表单有“提交更改”、“确定”和“取消”按钮。目前,没有由“确定”和“取消”按钮触发的事件 如果用户未提交任何更改,则按“确定”按钮应生成一个消息框,以引导用户提交其更改。这就是我的问题所在 我让Ok按钮触发一个事件按钮Ok_Click来检查更改。这里的问题是,由于已经按下了Ok按钮,我不确定如何停止表单关闭以允许用户保存他/她的更改。我无法修改调用表单的代码,因为它是另一个组的一部分
form1.DialogResult = DialogResult.None;
与表单和按钮上相同名称的属性相结合,用于控制模式表单的关闭方式以及向调用者返回的值。
例如,按下DialogResult属性设置为OK的按钮将强制模式窗体退出ShowDialog方法,返回值设置为DialogResult.OK
using(Form1 f = new Form1())
{
if(f.ShowDialog() == DialogResult.OK)
{
// Perform post confirmation task on the form data
}
}
将表单属性设置为DialogResult.None
form1.DialogResult = DialogResult.None;
与表单和按钮上相同名称的属性相结合,用于控制模式表单的关闭方式以及向调用者返回的值。
例如,按下DialogResult属性设置为OK的按钮将强制模式窗体退出ShowDialog方法,返回值设置为DialogResult.OK
using(Form1 f = new Form1())
{
if(f.ShowDialog() == DialogResult.OK)
{
// Perform post confirmation task on the form data
}
}
感谢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;
}
}
感谢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;
}
}
也许解释一下你的答案的结果是什么,尽管它看起来很明显。@Subby,是的,我写的正是关于这个也许解释一下你的答案的结果是什么,尽管它看起来很明显。@Subby,是的,我写的正是关于这个,只是为了做一个书呆子,事件是由“确定”和“取消”按钮触发的,您只是碰巧没有听到它们:我建议正确的修复方法是完全删除“确定”按钮。它的作用是什么?作为一个学究,事件是由Ok和Cancel按钮触发的,你只是碰巧没有听到它们:我建议正确的修复方法是完全移除Ok按钮。它有什么用途?