首页 > 解决方案 > 在多个表单之间共享一个 MenuStrip 并分别“打开、保存、另存为”每个表单

问题描述

我可以使用 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 天...请帮助!

标签: c#winforms

解决方案


UserControl 的解决方案是:

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...
}

推荐阅读