从类库中引用父表单

时间:2013-04-04 12:25:57

标签: c# forms reference class-library

我一直在尝试将所有类编译成类库,这是一个非常好的功能。我的目标是让我的所有代码都不包含特定应用程序的代码。当我尝试添加引用父表单的类时,我会遇到问题,因为类库中没有父表单。如何在应用程序中创建父类之前创建一个尚未知的表单引用?

public class Form1 : Form
{

private Child child;

public Form1()
{
    child = new Child(this);
}


}


public class Child
{


    private Form1 parent;
    public Child(Form1 parent)
    {
        this.parent = parent;
    }


}

此代码在标准应用程序中工作,但是当我将Child类添加到类库时,“Form1”文本将无法编译,因为Form1未包含在类库中。有没有办法解决?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

由于Form1源自Form,为什么不将Form作为Child的构造函数的参数?

public class Child
{
    private Form parent;
    public Child(Form parent)
    {
        this.parent = parent;
    }
}

这至少会破坏您的应用程序对类库的依赖性,但它仍然需要依赖于Form的WinForms。这取决于您在代码中对parent的意图,但这是否足够。