我有以下
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:由此我不是说关闭程序,我的意思是"打破行动"否则他将关闭而不保存
答案 0 :(得分:0)
我更正了删除第一个showdialog
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会失败并且文件未保存的消息会显示,前面的一些消息不正确,(比如文件比较),如果像这样我必须设置一个其他的
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个测试 希望它有所帮助