如何改变菜单栏的保护级别,以便我可以在菜单栏不存在的其他形式进行编码

本文关键字:菜单栏 其他 我可以 不存在 编码 改变 何改变 保护 | 更新日期: 2023-09-27 17:49:46

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以进行更多更改。