如何从子表单访问父表单?

时间:2013-09-02 18:06:11

标签: c# forms

我试过这个,我找不到任何我理解的东西。

但我要做的是创建一个包含所有函数的类,然后从父表单中调用它。

其中一个函数包含向父表单添加控件,但我无法找到如何执行此操作,有人可以帮助我并在此过程中解释它吗?

非常感谢, 贾罗德

2 个答案:

答案 0 :(得分:0)

通常,我只是在较低的类中添加对父窗体的引用,并在构造函数中初始化它。像这样:

public form MyForm : Form
{
    Foo myFoo;

    public MyForm()
    {
        this.myFoo = new Foo(this);
    }
}

public class Foo
{
    private MyForm parentForm;

    public Foo(MyForm parent)
    {
        parentForm = parent;
    }
}

然后您可以引用父表单并按照您的意愿操作它。它也适用于静态类。

答案 1 :(得分:0)

试试这个;

在您的课程中使用此方法将控件添加到父窗体

public static void AddControl(Form ParentForm,Control control,Point location)
{
control.Location=location;//This is only to show you
Parent.Controls.Add(control);//how it can be done.You can replace this logic with yours
//but make sure to add this Parent.Controls.Add(control),where control will be the name of        your Control.
}

然后,当您需要添加控件时,将函数调用为;

ClassName.AddControl(this,new TextBox(),new Point(10,10));//Change ClassName to your class's name.

其他任何事情请告诉我。