多个 Form 共享一个 MenuStrip,每个 Form 分别 "open, save, save as"

Sharing one MenuStrip between multiple Forms and "open, save, save as" each form separately

我可以使用 1 个 MenuStrip 在面板“PanelSlider_Utils”中显示多个表单,如下所示:

public Utils()
{
    InitializeComponent();
    PanelSlider_Utils.Controls.Add(new Job1());
    PanelSlider_Utils.Controls.Add(new Job2());
    PanelSlider_Utils.Controls.Add(new Job3());
}

并调用函数

private void DefinirJob1ToolStripMenuItem_Click(object sender, EventArgs e)
{
    PanelSlider_Utils.Controls.Find("Job1", false)[0].BringToFront();
}

private void DefinirJob2ToolStripMenuItem_Click(object sender, EventArgs e)
{
    PanelSlider_Utils.Controls.Find("Job2", false)[0].BringToFront();
}

private void DefinirJob3ToolStripMenuItem_Click(object sender, EventArgs e)
{
    PanelSlider_Utils.Controls.Find("Job3", false)[0].BringToFront();
}

如何使用相同的 MenuStrip 为每个表单打开、保存、另存为文件?

我已经尝试和搜索了 2 天...请帮助!

用户控件的解决方案是:

public void newToolStripMenuItem_Click(object sender, EventArgs e)
{
    foo obj = this.Controls.Find("MYFORM", true)[0] as foo;
    if (obj != null)
        obj.new_method();
}

我在 MYFORM 中这样调用 new_method:

public void new_method()
{
 ...my code...
}

好的没问题

我有一个主窗体并使用 1 个带有 UserControl 的 MenuStrip 调用多个面板 (PanelSlider) :

        public Form1()
    {
       InitializeComponent();
        PanelSlider.Controls.Add(new Home());
        PanelSlider.Controls.Add(new Tools());
        etc...
    }

带按钮的活动面板

    private void HomeBtn_Click(object sender, EventArgs e)
    {
        PanelSlider.Controls.Find("Home", false)[0].BringToFront();

    }

为了切换多面板,我声明了一个菜单条,例如:

    private void CallToolStripMenuItem_Click(object sender, EventArgs e)
    {
        PanelSlider_Utils.Controls.Find("Tools", false)[0].BringToFront();
    }

问题是 1 个菜单条 open/save/save 作为选项

解决方法:

public void SaveToolStripMenuItem_Click(object sender, EventArgs e)
{
    Tools obj = this.Controls.Find("TOOLS", true)[0] as Tools;
    if (Tools != null)
        Tools.new_method();
}

并在 TOOLS 表单中这样调用 new_method:

public void new_method()
{
 ...my code...
}