我有FormA,当按下按钮时,会创建另一个表单FormB。
我应该在哪里处置FormB。 在FormA Closing事件中处理FormB是否可以?
答案 0 :(得分:6)
当FormB关闭时(使用.Close
方法),它将被处置,因此您无需手动调用.Dispose
方法。
答案 1 :(得分:0)
当单击X或其他可能隐藏的FormB关闭FormB时,它不会被丢弃。如果该实例中的那个表单经常出现,请在FormA或应用程序退出时将其处理掉。如果没有打开那个表单,你甚至可以在按钮的click-event-handler中处理它。可以使用using
关键字。
using(FormB b = new FormB())
{
if(b.ShowDialog() == DialogResult.OK) {...} else {...}
}
当然,这只有在模态显示时才有可能。
答案 2 :(得分:0)
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
你可以在表单designer.cs文件中看到它,当表单关闭时会调用它,所以不必担心dispose
答案 3 :(得分:0)
表单不是的两个条件 处于关闭状态时是(1)它 多文档界面的一部分 (MDI)应用程序,而表单则不是 可见; (2)你已经展示了 使用ShowDialog的表单。在这些 在这种情况下,您需要调用Dispose 手动标记所有表单 控制垃圾收集。
最好使用:
using (var modalForm = new FormB())
{
modalAddUser.ShowDialog();
}