代码之家  ›  专栏  ›  技术社区  ›  krobelusmeetsyndra AnalystCave.com

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

  •  0
  • krobelusmeetsyndra AnalystCave.com  · 技术社区  · 6 年前

    我有三种形式,一种是父母,另两种是孩子。我这样做的原因是父窗体可以引用子窗体,反之亦然(我在这样做之前实际上遇到了一个无限递归错误,但都不见了)。

    我写的代码如下:

    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 回复  |  直到 6 年前
        1
  •  4
  •   Titian Cernicova-Dragomir    6 年前

    this 在字段初始化中不可用。如果需要使用 :

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