如何找到具有名称的toolstripmenuItem

Lea*_*ner 2 c# menustrip toolstripdropdown toolstripmenu

我已将menuStrip1项的可见属性设置为false

foreach (ToolStripMenuItem itm in menuStrip1.Items)
{
    itm.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)

现在我知道toolStripMenuItem and dropDownItem了menustrip1的名字.如何激活所需的toolStripMenuItem and dropDownItem.

我有

string mnItm = "SalesToolStripMenuItem";
string ddItm = "invoiceToolStripMenuItem";
Run Code Online (Sandbox Code Playgroud)

现在我想将这两个(toolStripMenuItem and dropDownItem)项设置为true .我怎样才能做到这一点?我只知道那些名字.

Kin*_*ing 6

只需使用这些名称来获取实际的itemvia MenuStrip.Items索引器:

ToolStripMenuItem menuItem = menuStrip1.Items[mnItm] as ToolStripMenuItem;
ToolStripDropDownMenu ddItem = menuStrip1.Items[ddItm] as ToolStripDropDownMenu;
Run Code Online (Sandbox Code Playgroud)


Sri*_*vel 5

您正在寻找ToolStripItemCollection.Find方法。

var items = menustrip.Items.Find("SalesToolStripMenuItem", true);
foreach(var item in items)
{
    item.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)

第二个参数表示是否搜索孩子的。


Vir*_*rus 5

您可以使用

menuStrip1.Items[mnItm].Visible = true;
menuStrip1.Items[ddItm].Visible = true;
Run Code Online (Sandbox Code Playgroud)

或者如果您想将 Visible 设置为多个工具条项目:

string [] visibleItems = new [] {"SalesToolStripMenuItem", "invoiceToolStripMenuItem"};
foreach (ToolStripMenuItem item in menuStrip1.Items)
{
     if (visibleItems.Contains(item.Name))
     { 
        item.Visible = false;
     }
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你