[英]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.