从自定义组件挂接主菜单

本文关键字:菜单 自定义 组件 | 更新日期: 2023-09-27 18:19:58

我正在为我的WinForms应用程序创建一个自定义组件。它将处理文件命令,如新建、打开、保存和另存为

我以前也这样做过,所以我很清楚我希望它如何工作。但我想知道是否有任何方法可以让组件自动将相关命令挂接到主窗体中。或者甚至可以动态地将这些命令添加到主窗体。这将省去我在每个使用该组件的应用程序中挂接这些命令的麻烦。

如果有更好的方法,我不会使用组件。基本上,它是一个访问其他组件(如公共对话框)的类。

谢谢你的提示。

从自定义组件挂接主菜单

我找不到任何巧妙的方法来做到这一点。

我最终只是向我的组件添加了一个方法,表单必须调用该方法,该方法可以添加所有菜单命令并附加组件自己的处理程序。该方法有一个参数:命令应该添加到的ToolStripMenuItem的实例。

public void CreateMenuCommands(ToolStripMenuItem menuItem)
{
    menuItem.DropDownItems.Insert(0, new ToolStripMenuItem("&New", null, MenuNew_Click, Keys.Control|Keys.N));
    menuItem.DropDownItems.Insert(1, new ToolStripMenuItem("&Open...", null, MenuOpen_Click, Keys.Control | Keys.O));
    menuItem.DropDownItems.Insert(2, new ToolStripMenuItem("&Save", null, MenuSave_Click, Keys.Control | Keys.S));
    menuItem.DropDownItems.Insert(3, new ToolStripMenuItem("Save &As...", null, MenuSaveAs_Click));
}

它仍然需要对表单的一部分进行手动步骤,但调用这个方法很简单。