[英]How to find toolstripmenuItem with name
我已将menuStrip1项的可见属性设置为false
foreach (ToolStripMenuItem itm in menuStrip1.Items)
{
itm.Visible = false;
}
现在我知道了toolStripMenuItem and dropDownItem
的名称。 如何激活所需的toolStripMenuItem and dropDownItem
。
我有
string mnItm = "SalesToolStripMenuItem";
string ddItm = "invoiceToolStripMenuItem";
现在我想将这两个( toolStripMenuItem and dropDownItem
)项设置为true。 我怎样才能做到这一点? 我只知道那些名字。
只需使用这些名称通过MenuStrip.Items
索引器获取实际item
:
ToolStripMenuItem menuItem = menuStrip1.Items[mnItm] as ToolStripMenuItem;
ToolStripDropDownMenu ddItem = menuStrip1.Items[ddItm] as ToolStripDropDownMenu;
您正在寻找ToolStripItemCollection.Find方法。
var items = menustrip.Items.Find("SalesToolStripMenuItem", true);
foreach(var item in items)
{
item.Visible = false;
}
第二个参数表示是否搜索孩子。
您可以使用
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;
}
}
希望能帮助到你
你应该尝试这样的事情:
string strControlVal ="somecontrol"; //"SalesToolStripMenuItem" or "invoiceToolStripMenuItem" in your case
foreach (ToolStripMenuItem item in menuStrip1.Items)
{
if (strControlVal == item.Name)
{
item.Visible = false;
}
}
根据需要自行决定初始化strControlVal
字符串。
如果我收到您的问题,您试图禁用除上述两个提到的工具条之外的其他项目。 由于您知道菜单项的名称,因此代码的细微变化可以帮助您
foreach (ToolStripMenuItem itm in menuStrip1.Items)
{
if(itm.Text !="SalesToolStripMenuItem" || itm.Text !="invoiceToolStripMenuItem")
{
itm.Visible = false;
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
string MenuItemName = sender.ToString()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.