在面板和类之间传递信息

本文关键字:信息 之间 | 更新日期: 2023-09-27 17:54:03

我的应用程序(命名空间)有一个包含面板(panel)的主表单(form)。

当主表单加载时,它调用子表单到它的面板。该子表单充当启动页面。上面有一个"启动"按钮。当单击该按钮时,子表单应该隐藏,并将新表单加载到面板中。

    private void buttonLaunch_Click(object sender, EventArgs e)
    {
        this.Hide();
        Hub NewHub = new Hub();
        NewHub.TopLevel = false;
        NewHub.AutoScroll = true;
        Master.panelMaster.Controls.Clear();
        Master.panelMaster.Controls.Add(NewHub);
        NewHub.FormBorderStyle = FormBorderStyle.None;
        NewHub.Show();
    }

我得到错误:

错误1非静态字段、方法或属性"Manager_0._2.Master.panelMaster"需要对象引用

我不知道如何解释这个错误来解决这个问题。

在面板和类之间传递信息

好吧,假设你有一个名为namespace.class的类,其中包含一个名为panel的成员,编译器告诉你,你似乎试图通过类本身而不是类的实例(即对象)访问panel。要创建class的实例,执行如下操作:

namespace.class c = new namespace.class();

然后你可以访问该对象上名为panel的属性或字段:

c.panel.Controls.Clear();

注意:你的命名选择非常糟糕。调用名称空间namespace或类class只是自找麻烦。以下是一些推荐的命名约定:

命名指南

更新:从更仔细地阅读你的问题,似乎你正试图将Form添加到Panel。一旦你解决了这个编译问题,你就会开始得到运行时错误,因为这不是Windows窗体的工作方式。你不能把Form放在Panel里。Forms是顶级UI元素。老实说,我不太了解你的目标,无法建议你怎么做。