当前位置:  开发笔记 > 编程语言 > 正文

在C#中处理来自父表单的表单?

如何解决《在C#中处理来自父表单的表单?》经验,为你挑选了1个好方法。

我有一个表单,当单击一个按钮(form1button)时将打开一个新表单.在子表单上会有另一个按钮'form2button'.现在,如果我单击此form2按钮,则应该处理新的form2.但是因为form2对象是在form1类方法中创建的,所以我无法在form2类方法中处理该对象(fom2buttonclick).所以我使用static来完成我的工作,如下面的psuedo代码.

Form1中:

class Form1 : Form
{
    static Form2 f2;

    public void Form1_buttonclick(object sender, EventArgs e)
    {
        f2 = new Form2();
    }

    public void Disposef2()
    {
        f2.Dispose();
    }
}

窗体2:

class Form2 : Form
{
    public void Form2_buttonclick(object sender, EventArgs e)
    {
        Form1 f1 = new Form1();
        f1.Disposef2();
    }
}

有没有其他更好的方法来做到这一点.或者C#设计本身并不提供替代机制.我是C#的新手.请帮帮我..

编辑

我想关闭(显式处置)form2对象,当单击form2上的按钮时,该对象在form1类中创建.此编辑旨在提供更清晰的信息.



1> Igor Brejc..:

关于处理表单的MSDN文档:

如果使用Show方法显示表单,将自动调用Dispose.如果使用其他方法(如ShowDialog),或者根本不显示表单,则必须在应用程序中调用Dispose.

资源

关闭与处置:

关闭表单时,将关闭对象中创建的所有资源并处理表单.您可以通过处理Closing事件并将作为参数传递的CancelEventArgs的Cancel属性设置为事件处理程序来阻止在运行时关闭表单.如果您要关闭的表单是应用程序的启动表单,则应用程序结束.

表单未在Close上处理时的两个条件是(1)它是多文档界面(MDI)应用程序的一部分,并且表单不可见; (2)您使用ShowDialog显示了表单.在这些情况下,您需要手动调用Dispose以标记所有表单的垃圾回收控件.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有