我正在尝试将最初用于MenuStrip的代码转换为可以与ToolStrip一起使用的代码。简而言之,将MenuItem传递给Init(),然后我需要确定所涉及菜单项的父级。此代码段可用于MenuStrip,但我似乎无法使其与父级为ToolStripDropDownButton的ToolStrip一起使用。

原始代码段(适用于MenuStrip):

private MenuItem menuItemMRU;
private MenuItem menuItemParent;

public void Init(MenuItem mruItem)
{
    menuItemMRU = mruItem;
    menuItemParent = (MenuItem) menuItemMRU.Parent;
}


这就是我到目前为止

private ToolSTripMenuItem menuItemMRU;
private ToolStripDropDownButton menuItemParent;

public void Init(ToolStripMenuItem mruItem)
{
    menuItemMRU = mruItem;
    menuItemParent = (ToolStripMenuItem)menuItemMRU.Owner;
}


这给了我以下错误:

无法将类型“ System.Windows.Forms.ToolStrip”转换为“ System.Windows.Forms.ToolStripMenuItem”

最佳答案

但是,ToolStripItem确实具有OwnerItem属性。见msdn

09-08 03:22