C# 如何使程序停止任何操作,或取消savefiledialog?
我有以下几点C# 如何使程序停止任何操作,或取消savefiledialog?,c#,savefiledialog,cancellation,C#,Savefiledialog,Cancellation,我有以下几点 SaveFileDialog xmlDialog1 = new SaveFileDialog(); xmlDialog1.Filter = "XML File|*.xml"; xmlDialog1.Title = "Save a XML File"; xmlDialog1.FileName = "RhodesConfigCalc.xml"; xmlDialog1.ShowDialog(); //garante que não foi premido o cancel DialogR
SaveFileDialog xmlDialog1 = new SaveFileDialog();
xmlDialog1.Filter = "XML File|*.xml";
xmlDialog1.Title = "Save a XML File";
xmlDialog1.FileName = "RhodesConfigCalc.xml";
xmlDialog1.ShowDialog();
//garante que não foi premido o cancel
DialogResult res = xmlDialog1.ShowDialog();
if (res == DialogResult.Cancel)
{
MessageBox.Show("O ficheiro não foi gravado."); //translates into the file has not been saved
e.Cancel = true;
}
这是一个试图修补一些错误的消息框,我希望它真的取消,而不是做前面的行动,提示
编辑:我忘了提到这是一个闭包方法
private void Form1_FormClosing(object sender, FormClosingEventArgs e) {}
Edit2:我的意思不是关闭程序,我是说“中断操作”,否则他将关闭而不保存
SaveFileDialog xmlDialog1 = new SaveFileDialog();
xmlDialog1.Filter = "XML File|*.xml";
xmlDialog1.Title = "Save a XML File";
xmlDialog1.FileName = "RhodesConfigCalc.xml";
//garante que não foi premido o cancel
DialogResult res = xmlDialog1.ShowDialog();
if (res == DialogResult.Cancel)
{
MessageBox.Show("O ficheiro não foi gravado."); //translates into the file has not been saved
e.Cancel = true;
}
但这是不够的,虽然res会失败,文件未保存的消息会显示,前面的一些消息是不正确的,(比如文件比较),如果这样,我必须设置一个double-else
if (resultadocomparacao2 == false) //IF compare fails, stops
{
MessageBox.Show("A tabela não foi guardada correctamente.");
e.Cancel = true;
}
else if (res == DialogResult.Cancel) //If save is canceled, stops
{
MessageBox.Show("O ficheiro não foi gravado."); //translates into the file has not been saved
e.Cancel = true;
}
else if (resultadocomparacao2 == true) //if compare gets his job done (Sucess)
{
MessageBox.Show("A tabela foi guardada com sucesso.");
}
我必须在同一个if中包含所有3个测试
希望有帮助我不太清楚你在问什么。另外,为什么要调用
ShowDialog
两次?你的意思是?不,对不起,我的意思是没有完成程序,否则他将在不保存的情况下关闭。你似乎想显示保存文件对话框,然后检查用户是否真的保存了文件或取消了对话框。您已经在这里完成了:DialogResult=xmlDialog1.ShowDialog()代码>。那么,只需删除对ShowDialog()
的第一个调用如何?我这样做是因为第一个调用用于显示对话框,另一个调用用于将结果存储在“res”中。。在这方面我真是个乞丐:(