我正在为我的WinForms应用程序创建一个自定义组件。它将处理文件命令,如新建,打开,保存和另存为。
之前我已经这样做了,所以我很清楚我希望它如何工作。但我想知道是否有任何方法让组件自动挂钩主窗体中的相关命令。或者甚至可以将这些命令动态添加到主窗体中。这样可以省去在每个使用该组件的应用程序中连接这些命令的麻烦。
如果有更好的方法,我不会使用组件。基本上,它是一个访问其他组件的类,如公共对话框。
感谢您的任何提示。
答案 0 :(得分: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));
}
它仍然需要在表单部分进行手动步骤,但调用这种方法是一件简单的事情。