我有一个按钮单击事件处理程序与以下伪代码:
private void btnSave_Click(object sender, EventArgs e)
{
if(txt.Text.length == 0)
this.Close();
else
// Do something else
// Some other code...
}
Run Code Online (Sandbox Code Playgroud)
这只是一些简单的代码,但关键是,当文本长度等于零时,我想关闭表单.但是代码不是关闭表单而是执行部分//其他一些代码.单击事件处理程序完全执行后,表单将关闭.
我知道,当我在表格结束return后立即this.Close()关闭时,我想知道为什么表格在你打电话时不会直接关闭this.Close().为什么执行事件处理程序的其余部分?
Dir*_*mar 11
执行事件处理程序的其余部分是因为您没有离开该方法.它是如此简单.
调用this.Close()不会立即"删除"表单(和当前事件处理程序).如果没有对表单的更多引用,表单将在稍后由垃圾收集器收集.
this.Close() 不是常规方法调用,除非方法抛出异常,否则将保留在当前方法的上下文中.
关闭只隐藏表格; 表单仍然存在,如果再次显示,则不会再收到另一个Load事件.
要从内存中实际删除它,请使用Dispose().
| 归档时间: |
|
| 查看次数: |
30832 次 |
| 最近记录: |