もともと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」に変換できません