2016-04-05 67 views
1

使用C#和WinForms,我有一个按钮点击调用各种形式基本菜单:我是否需要调用Form.Close(),还是为我处理?

private void Some_Button_Click(object sender, EventArgs e) 
     { 
      var someForm = new SomeForm(); 

      someForm.MdiParent = MenuForm; 
      someForm.Show(); 
      someForm.BringToFront(); 
     } 

我担心的是内存使用率。当用户点击“x”关闭窗体时,窗口关闭时是否已调用Form.Close()?或者,我是否需要创建一个事件才能明确调用Form.Close()

+2

不,你不知道。除非通过代码手动关闭'Form',否则不需要调用Form.Close()。 – EvilTak

+0

以传统的.NET方式,类的Close()方法调用Dispose()。这也适用于Form类。在某些情况下,您需要调用Dispose(),当您使用ShowDialog()而不是Show()时需要。它不能是自动的,因为通常在ShowDialog()调用之后获得对话结果。并正确使用* using *语句完成。这里不是这种情况。 –

回答

2

当用户点击“x”关闭窗体时,窗口关闭时是否已调用Form.Close()

不,FormClosing事件被触发。 Form.Close告诉系统关闭表单(在这种情况下也会触发FormClosing事件)。

Close指令FormClosing在响应命令时被称为

+0

对我来说够好。非常感谢! – Kiel

相关问题