EDIT: 如果我在Home Form private to public void中更改,那么我必须从void转换为bool…但我不知道这是怎么回事你们能帮帮我吗?
我被困在这里的代码....我想知道如何访问我的另一个窗体的菜单栏从另一个窗体。
E。G:
我想从菜单栏不存在的其他形式点击菜单栏。
代码如下:
表格1
Home frm = new Home();
frm.IsMdiContainer = true;
if(frm.Controls["todasEntradasToolStripMenuItem"].Click += frm.todasEntradasToolStripMenuItem_Click)
{
{something}
}
表单Home是"from"变量,它是菜单条的位置。我需要帮助更改保护级别,以便这个表单(Form1)可以接受这个代码…有人能帮我吗?
方案一(nice):在Home中的init方法或构造函数中添加Click事件。在那里你可以访问你的控件
todasEntradasToolStripMenuItem.Click += todasEntradasToolStripMenuItem_Click;
同样在Home中定义一个新事件:
public event EventHandler<EventArgs> TodasEntradasToolStripMenuItemClick;
private void OnTodasEntradasToolStripMenuItemClick(EventArgs e)
{
if (todasEntradasToolStripMenuItem != null)
{
TodasEntradasToolStripMenuItemClick(this, e);
}
}
在Click处理程序中引发自己的公共事件:
private void todasEntradasToolStripMenuItem_Click(object sender, System.EventArgs e)
{
OnTodasEntradasToolStripMenuItemClick(e);
}
在Form1中,你添加你的Handler到这个公共事件:
Home frm = new Home();
frm.TodasEntradasToolStripMenuItemClick += frm_TodasEntradasToolStripMenuItemClick;
在这个处理程序中,你可以"做点什么":
private void frm_TodasEntradasToolStripMenuItemClick(object sender, EventArgs e)
{
// Do something
}
方案二(不做):你要求更改保护级别。所以你可以修改
private todasEntradasToolStripMenuItem
Home to
internal todasEntradasToolStripMenuItem
或者
public todasEntradasToolStripMenuItem
但我不建议你不这样做。你应该选择解决方案1。使用解决方案2,您将打开Home以进行更多更改。