多个 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...
}
我可以使用 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...
}