C# 如何更改menustrip的保护级别,以便在menustrip不为';不是吗

C# 如何更改menustrip的保护级别,以便在menustrip不为';不是吗,c#,forms,winforms,menustrip,C#,Forms,Winforms,Menustrip,编辑:如果我在家里从私有变为公有,那么我必须从公有变为私有。。。但我不知道这是怎么回事。你们能帮帮我吗? 我被困在这里的代码。。。。我想知道如何从另一个窗体访问我的另一个窗体,该窗体具有menustrip 例如: 我希望从其他不存在menustrip的表单中单击menustrip 代码如下: 表格一 Home frm = new Home(); frm.IsMdiContainer = true; if(frm.Controls["todasEntradasToolStripMenuItem"]

编辑:如果我在家里从私有变为公有,那么我必须从公有变为私有。。。但我不知道这是怎么回事。你们能帮帮我吗?

我被困在这里的代码。。。。我想知道如何从另一个窗体访问我的另一个窗体,该窗体具有menustrip

例如:

我希望从其他不存在menustrip的表单中单击menustrip

代码如下:

表格一

Home frm = new Home();
frm.IsMdiContainer = true;
if(frm.Controls["todasEntradasToolStripMenuItem"].Click += frm.todasEntradasToolStripMenuItem_Click)
       {
            {something}
       }
表单Home是“frm”变量,它是具有菜单条的位置。我想帮助更改保护级别,以便此表单(Form1)可以接受此代码。。。有人能帮我吗?

解决方案1(很好): 在某些Init方法或Home中的构造函数中添加Click事件。在那里,您可以访问您的控件

todasEntradasToolStripMenuItem.Click += todasEntradasToolStripMenuItem_Click;
在Home中,您还可以定义一个新事件:

    public event EventHandler<EventArgs> TodasEntradasToolStripMenuItemClick;

    private void OnTodasEntradasToolStripMenuItemClick(EventArgs e)
    {
        if (todasEntradasToolStripMenuItem != null)
        {
            TodasEntradasToolStripMenuItemClick(this, e);
        }
    }
在Form1中,您将处理程序添加到此公共事件:

    private void todasEntradasToolStripMenuItem_Click(object sender, System.EventArgs e)
    {
        OnTodasEntradasToolStripMenuItemClick(e);
    }
        Home frm = new Home();
        frm.TodasEntradasToolStripMenuItemClick += frm_TodasEntradasToolStripMenuItemClick;
在这个处理程序中,您可以“做某事”:

解决方案2(不要这样做): 您要求更改保护级别。所以你可以改变

private todasEntradasToolStripMenuItem
在家里

internal todasEntradasToolStripMenuItem
甚至

public todasEntradasToolStripMenuItem

但我不建议你不要这样做。您应该选择解决方案1。使用解决方案2,您将打开更多更改的主页。

我仍然不知道如何将Form1中的处理程序添加到public?谢谢,首先很抱歉我的回答很简短。我现在编辑了它,并添加了更多的细节。我只是粘贴了我在Form1 menustripclick中使用的代码,并将其放在home menustripclick中,现在它可以工作了。Winforms内置支持将子窗口的菜单与MDI容器的菜单合并。不使用此功能是一个错误。否则操作简单,请将属性窗口中的Modifiers属性从Private更改为Public。您知道要执行操作的表单是主表单的mdi子级吗。如果是这样的话,那么这是可能的,我可以提供指导
public todasEntradasToolStripMenuItem