2017-06-07 55 views
0

首先感谢您的时间!我希望你能帮助我=/C# - Menustrip-检查是否存在父,并获得对它们引用

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

我想要做什么: 如果具有完全相同的名称的Partent已经存在的童车应添加到此父,而不是创建一个新的父(MenuStripItem)具有相同的名称。我的代码当前检查父级是否已经存在(哪些工作正常),但问题是我不能得到对这个父级的引用 - > firstItem = var不工作 - >不能工作将ToolStripItem转换为ToolStripMenuItem ...并且改变在“与firstItem”来的ToolStripItem给了我一个错误,因为我不能使用“firstItem.DropDownItems.Add(为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); } 
    } 

感谢提前!

回答

1

ToolStripMenuItem是从ToolStripItem一类(未直接)表示顶层菜单项,并导出。

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

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

得到它!谢谢!!!祝你今天愉快 – christian890

相关问题