C# - Menustrip- 检查 Parent 是否存在并获取对它们的引用

C# - Menustrip- Check if Parent exists and get the reference to them

首先感谢您的宝贵时间!我希望你能帮助我=/

我有一个 MenuStrip,我想在其中动态添加项目。

我想做什么: 如果已经存在具有完全相同名称的 Partent,则应将 Child 添加到此 parent 而不是创建具有相同名称的新 Parent(MenuStripItem)。

我的代码目前检查 parent 是否已经存在(工作正常)但问题是我无法获得对此 parent 的引用 -> firstItem=var 不工作 -> 不能将 ToolStripItem 转换为 ToolStripMenuItem...并将 "firstItem" 更改为 ToolStripItem 给我一个错误,因为我不能再使用 "firstItem.DropDownItems.Add(withChild);" 稍后添加 Child...

        private void AddNewMenuStrips(string [,] NewMenuStripInfo)
    {
        ToolStripMenuItem firstItem; 
         bool alreadyexists = false;
         string someItem = "Settings"; // the parent im looking for
        var items = menuStrip2.Items.Find(someItem+"ToolStripMenuItem",false); //here it checks if parent already exists. Which Works but i cant get the reference of the parent to  "firstItem"

        foreach (var item in items)
        {
            MessageBox.Show("FOUND"+item.Name);
            firstItem = var; // ERROR cant convert ToolStripItem to ToolStripMenuItem   
            alreadyexists=true;                             
        }

        if (alreadyexists == false) { firstItem = new ToolStripMenuItem(someItem); }  
   }

提前致谢!

ToolStripMenuItem 是一个 class,它表示顶级菜单项并(不是直接)派生自 ToolStripItem

因此要检索父菜单项,您可以使用强制转换:

foreach (var item in parents)
{
    MessageBox.Show("FOUND" + item.Name);
    firstItem = item as ToolStripMenuItem;
    alreadyexists = true;
    // break;
}