1

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

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

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

感谢您的任何提示。

4

1 回答 1

0

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

我最终只是向我的组件添加了一个方法,表单必须调用该方法,添加所有菜单命令并附加组件自己的处理程序。该方法采用一个参数: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));
}

它仍然需要表单部分的手动步骤,但是调用这个单一方法是一件简单的事情。

于 2013-06-27T00:21:52.893 回答