C# 将字符串转换为ToolStripMenuItem

C# 将字符串转换为ToolStripMenuItem,c#,C#,我已经在表单上设置了一个菜单结构,我想使用数据库以编程方式启用或禁用某些菜单项 我已经到了最后一个阶段,我有一个AllowedMenu和CodeNames(与toolstripmenuitems完全匹配)类,我要做的就是将CodeName从字符串转换成ToolStripMenuItem 我如何才能做到这一点?您可以通过ToolStrip的Items属性访问ToolStripItems。如果您有项目的确切名称(在CodeName变量中),则可以执行以下操作: if (toolStrip1.Item

我已经在表单上设置了一个菜单结构,我想使用数据库以编程方式启用或禁用某些菜单项

我已经到了最后一个阶段,我有一个
AllowedMenu
CodeNames
(与toolstripmenuitems完全匹配)类,我要做的就是将
CodeName
从字符串转换成
ToolStripMenuItem


我如何才能做到这一点?

您可以通过
ToolStrip
Items
属性访问ToolStripItems。如果您有项目的确切名称(在
CodeName
变量中),则可以执行以下操作:

if (toolStrip1.Items.ContainsKey(CodeName)) //Just in case... 
{
    var yourItem = toolStrip1.Items[CodeName];
}

您可以通过
ToolStrip
Items
属性访问ToolStripItems。如果您有项目的确切名称(在
CodeName
变量中),则可以执行以下操作:

if (toolStrip1.Items.ContainsKey(CodeName)) //Just in case... 
{
    var yourItem = toolStrip1.Items[CodeName];
}

似乎发现了一些有用的东西

var m = menuStrip1.Items.Find(menuItem.CodeName, true);
var o = m.ToList();
foreach (var p in o)
{
    p.Visible = false;
}

谢谢大家。

似乎找到了一些有效的方法

var m = menuStrip1.Items.Find(menuItem.CodeName, true);
var o = m.ToList();
foreach (var p in o)
{
    p.Visible = false;
}

谢谢大家。

在您的特定类中是否允许菜单为布尔值且代码名为字符串属性?关于你使用的对象要更具体一些基本上是的,这是正确的…在你的特定类中,AllowedMenu是一个布尔值,而代码名是字符串属性吗?对你使用的对象要更具体一些基本上是的,这是正确的…如果它直接在菜单栏上,效果会很好,但是如果我需要禁用下拉列表中的某个项目,例如,你有文件>退出,但你想禁用退出按钮呢?如果它直接在菜单栏上,效果会很好,但是,如果我需要禁用下拉列表中的某个项目,例如,您有文件>退出,但您想禁用退出按钮,该怎么办?