我的主表单中的一个按钮执行以下操作:
private void buttonGabarito_Click(object sender, EventArgs e)
{
FormGabarito fg = (FormGabarito)Application.OpenForms["FormGabarito"];
if (fg == null)
{
fg = new FormGabarito(this);
}
fg.ShowDialog();
}
然后,在我的“FormGabarito”中有一个“saveButton”
private void buttonExport_Click(object sender, EventArgs e)
{
var fb = new SaveFileDialog();
fb.Filter = "xml file (*.xml) | *.xml";
var res = fb.ShowDialog();
if (fb.FileName != null)
{
Manager.DtGabarito.WriteXml(fb.FileName);
UpdateAll();
}
}
我的问题是:当我关闭SaveFileDialog时,无论是选择路径还是点击取消,我的FormGabarito也会关闭!我的主要表格,哈哈。
我添加了以下行
this.DialogResult = DialogResult.None;
后
var res = fb.ShowDialog();
现在只有在单击SaveFileDialog中的取消按钮时才会出现此问题。 为什么会这样?我该如何解决呢?
答案 0 :(得分:0)
我尝试使用类似的代码重新创建问题,但它可以正常运行。
我的猜测是必须使用以下代码导致错误(权限或其他内容),
//Manager.DtGabarito.WriteXml(fb.FileName);
//UpdateAll();
工作代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 fg = (Form2)Application.OpenForms["Form2"];
if (fg == null)
{
fg = new Form2();
}
fg.ShowDialog();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var fb = new SaveFileDialog();
fb.Filter = "xml file (*.xml) | *.xml";
var res = fb.ShowDialog();
if (fb.FileName != null)
{
MessageBox.Show(fb.FileName);
//Manager.DtGabarito.WriteXml(fb.FileName);
//UpdateAll();
}
}
}