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;
}
首先感谢您的宝贵时间!我希望你能帮助我=/
我有一个 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;
}