C# 关闭表单1上的操作

C# 关闭表单1上的操作,c#,C#,我试图在程序结束时保存一个文件 private void Form1_FormClosed(object sender, FormClosedEventArgs e) { tabelaEC0.WriteXml(currentdirectory , XmlWriteMode.WriteSchema); Application.Exit(); } 在这种情况下,它根本不保存文件(用另一个按钮尝试,效果很好),所以问题是Form1关闭,有什么提示吗 更新::: 我创建了一个传统

我试图在程序结束时保存一个文件

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{ tabelaEC0.WriteXml(currentdirectory , XmlWriteMode.WriteSchema);   
  Application.Exit();
 }     
在这种情况下,它根本不保存文件(用另一个按钮尝试,效果很好),所以问题是Form1关闭,有什么提示吗

更新:::

我创建了一个传统的方法来保存文件,比如

public void funcaofecho(EventArgs e)

    {table.WriteXml(@"C:/file.xml", XmlWriteMode.WriteSchema); }
所以我把它挂在窗体上

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ Form1.Close() += funcaofecho; }
我相信它应该是这样工作的,但它缺少“对象引用”
有什么提示吗?

您正在使用tabelaEC0,我想它是您表单中的一个控件。如果是这种情况,则控件已被销毁,因为触发该事件时窗体已关闭


尝试在表单结束时执行此操作。

请确保使用正确的语言标记。这段代码不是C,不应该被标记为C。使用调试器逐步执行,看看WriteXml中到底发生了什么。另外,请检查从FormClosed调用WriteXml时是否引发异常。@我可能打错了computerfreaker,对不起。@EricJ我没有足够的经验来处理这个问题,但我会稍作修改,我会带着结果回来。
private void Form1\u FormClosed之后,我实际插入了所有表(对象发送方,FormClosedEventArgs e)
所以,我不确定它是否真的被破坏了,什么是表单关闭?@GusmanIt是一个事件,就像关闭了一样,但它会在表单真正关闭之前触发。如果你的控件被破坏了,它可能会干扰它的正确执行,再次添加表将不起作用。如果使用
应用程序。退出
我使用
System.Environm怎么办ent.Exit(0);
?FormClosed无论如何都会启动,它不会保存表?@Gusman如果这是您唯一的表单,那么当它关闭时,进程将终止。此外,您必须以某种方式挂钩事件,使用设计器(在事件列表中搜索FormClosed并双击)或添加此。FormCloseing+=(functionname)。函数sholud看起来像私有的void Form_FormClosing(object sender,FormClosingEventArgs e)要关闭表单,请使用this.close(),下面是ms事件和初学者教程