我已将menuStrip1项的可见属性设置为false
foreach (ToolStripMenuItem itm in menuStrip1.Items)
{
itm.Visible = false;
}
现在我知道了menustrip1 toolStripMenuItem and dropDownItem
的名字。如何激活所需的toolStripMenuItem and dropDownItem
。
我有
string mnItm = "SalesToolStripMenuItem";
string ddItm = "invoiceToolStripMenuItem";
现在我想将这两个(toolStripMenuItem and dropDownItem
)项设置为true。我怎样才能做到这一点?我只知道那些名字。
答案 0 :(得分:6)
只需使用这些名称即可通过item
索引器获取实际的MenuStrip.Items
:
ToolStripMenuItem menuItem = menuStrip1.Items[mnItm] as ToolStripMenuItem;
ToolStripDropDownMenu ddItem = menuStrip1.Items[ddItm] as ToolStripDropDownMenu;
答案 1 :(得分:4)
您正在寻找ToolStripItemCollection.Find方法。
var items = menustrip.Items.Find("SalesToolStripMenuItem", true);
foreach(var item in items)
{
item.Visible = false;
}
第二个参数表示是否搜索儿童。
答案 2 :(得分:3)
您可以使用
menuStrip1.Items[mnItm].Visible = true;
menuStrip1.Items[ddItm].Visible = true;
或者如果要将Visible设置为多个工具条项目:
string [] visibleItems = new [] {"SalesToolStripMenuItem", "invoiceToolStripMenuItem"};
foreach (ToolStripMenuItem item in menuStrip1.Items)
{
if (visibleItems.Contains(item.Name))
{
item.Visible = false;
}
}
希望有所帮助
答案 3 :(得分:2)
你应该尝试这样的事情:
string strControlVal ="somecontrol"; //"SalesToolStripMenuItem" or "invoiceToolStripMenuItem" in your case
foreach (ToolStripMenuItem item in menuStrip1.Items)
{
if (strControlVal == item.Name)
{
item.Visible = false;
}
}
根据您的需要自行决定初始化strControlVal
字符串。
答案 4 :(得分:1)
如果我收到你的问题,你试图禁用除上述两个提到的工具条之外的其他项目。由于您知道菜单项的名称,因此代码中的细微更改可以帮助您了解
foreach (ToolStripMenuItem itm in menuStrip1.Items)
{
if(itm.Text !="SalesToolStripMenuItem" || itm.Text !="invoiceToolStripMenuItem")
{
itm.Visible = false;
}
}
答案 5 :(得分:0)
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string MenuItemName = sender.ToString()
}