如何更改菜单条的保护级别,以便我可以在不是菜单条的情况下以其他形式进行编码
How to change protection level of menustrip so I can code in other form where menustrip isn't it
编辑:如果我将 Home Form private 更改为 public void,那么我必须做一些从 void 转换为 bool 的事情...但我不知道它是如何工作的。你们能帮帮我吗?
我被困在代码中....我想知道如何访问我的另一个表单,该表单具有来自另一个表单的菜单条。
例如:
我希望从不存在菜单条的其他表单中单击菜单条。
代码如下:
表格 1
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;
同样在主页中您定义了一个新事件:
public event EventHandler<EventArgs> TodasEntradasToolStripMenuItemClick;
private void OnTodasEntradasToolStripMenuItemClick(EventArgs e)
{
if (todasEntradasToolStripMenuItem != null)
{
TodasEntradasToolStripMenuItemClick(this, e);
}
}
在您引发自己的 public 事件的点击处理程序中:
private void todasEntradasToolStripMenuItem_Click(object sender, System.EventArgs e)
{
OnTodasEntradasToolStripMenuItemClick(e);
}
在 Form1 中,您将处理程序添加到此 public 事件:
Home frm = new Home();
frm.TodasEntradasToolStripMenuItemClick += frm_TodasEntradasToolStripMenuItemClick;
在此处理程序中,您可以 "do something":
private void frm_TodasEntradasToolStripMenuItemClick(object sender, EventArgs e)
{
// Do something
}
方案二(不做):
您要求更改保护级别。所以你可以改变
private todasEntradasToolStripMenuItem
在家
internal todasEntradasToolStripMenuItem
甚至
public todasEntradasToolStripMenuItem
但我不建议你不要这样做。您应该选择解决方案 1。如果使用解决方案 2,您将打开主页进行更多更改。
编辑:如果我将 Home Form private 更改为 public void,那么我必须做一些从 void 转换为 bool 的事情...但我不知道它是如何工作的。你们能帮帮我吗?
我被困在代码中....我想知道如何访问我的另一个表单,该表单具有来自另一个表单的菜单条。
例如:
我希望从不存在菜单条的其他表单中单击菜单条。
代码如下:
表格 1
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;
同样在主页中您定义了一个新事件:
public event EventHandler<EventArgs> TodasEntradasToolStripMenuItemClick;
private void OnTodasEntradasToolStripMenuItemClick(EventArgs e)
{
if (todasEntradasToolStripMenuItem != null)
{
TodasEntradasToolStripMenuItemClick(this, e);
}
}
在您引发自己的 public 事件的点击处理程序中:
private void todasEntradasToolStripMenuItem_Click(object sender, System.EventArgs e)
{
OnTodasEntradasToolStripMenuItemClick(e);
}
在 Form1 中,您将处理程序添加到此 public 事件:
Home frm = new Home();
frm.TodasEntradasToolStripMenuItemClick += frm_TodasEntradasToolStripMenuItemClick;
在此处理程序中,您可以 "do something":
private void frm_TodasEntradasToolStripMenuItemClick(object sender, EventArgs e)
{
// Do something
}
方案二(不做): 您要求更改保护级别。所以你可以改变
private todasEntradasToolStripMenuItem
在家
internal todasEntradasToolStripMenuItem
甚至
public todasEntradasToolStripMenuItem
但我不建议你不要这样做。您应该选择解决方案 1。如果使用解决方案 2,您将打开主页进行更多更改。