我有三种形式,其中一种是父母,另外两种是孩子。我这样做的原因是,父窗体可以引用子窗体,反之亦然(实际上,在执行此操作之前,我遇到了无限递归错误,但都消失了)。
我写了如下代码:
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
,但没有用。
有人可以给我有关我做错事情的任何指示吗?我经历了有关创建父/子表单的问题,它们都显示相同的内容。
答案 0 :(得分:4)
this
在字段初始化中不可用。如果需要使用this
,则需要将初始化移到构造函数中:
public partial class PerfilAcesso : Form
{
public PerfilAcesso ()
{
bdeForm = new BDE(this);
workshopForm = new Workshop(this);
}
BDE bdeForm;
Workshop workshopForm;
}