将关键字“ this”传递给子窗体时不可用

时间:2018-12-03 10:27:39

标签: c# winforms parent

我有三种形式,其中一种是父母,另外两种是孩子。我这样做的原因是,父窗体可以引用子窗体,反之亦然(实际上,在执行此操作之前,我遇到了无限递归错误,但都消失了)。

我写了如下代码:

public partial class PerfilAcesso : Form
{
 // this is the parent
     BDE bdeForm = new BDE(this); //error line
     Workshop workshopForm = new Workshop(this); //error line

// rest of the info
}


public partial class Workshop : Form
{
    // this is one child
    PerfilAcesso perfilAcesso;

    public Workshop(PerfilAcesso parent)
    {
        InitializeComponent();
        perfilAcesso = parent;
    }
}

public partial class BDE : Form
{
    // this is another child
    PerfilAcesso perfilAcesso;

    public BDE(PerfilAcesso parent)
    {
        InitializeComponent();
        perfilAcesso = parent;
    }
}

但是,它不会编译,因为它会出现以下错误

  

关键字“ this”在当前上下文中不可用

在我指出的第4和5行。

我尝试将父表单中的属性IsMdiContainer设置为true,但没有用。

有人可以给我有关我做错事情的任何指示吗?我经历了有关创建父/子表单的问题,它们都显示相同的内容。

1 个答案:

答案 0 :(得分:4)

this在字段初始化中不可用。如果需要使用this,则需要将初始化移到构造函数中:

public partial class PerfilAcesso : Form
{
     public PerfilAcesso () 
     {
        bdeForm = new BDE(this); 
        workshopForm = new Workshop(this); 
     }
     BDE bdeForm;
     Workshop workshopForm;
}