检查菜单项的可见性 [英] checking menu items visibility
问题描述
大家好!
在这里,我创建了一个代码来检查菜单项
私有 无效 formm_display_function(字符串 display_form_str)
{
foreach (ToolStripMenuItem menuItem in this ..menuStrip1 .项目)
{
如果(menuItem.Text.Trim()== display_form_str){
menuItem.Visible = true ;
break ;
}
}
在此代码中,只有第一个菜单正在检查
我有五个项目
display_form_str包含菜单中的一项
但是它只检查第一个菜单项.每次通过时都会命中该命令.确保封装了整个语句:
私有 void formm_display_function(字符串 display_form_str)
{
foreach (ToolStripMenuItem menuItem in this ..menuStrip1 .项目)
{
如果(menuItem.Text.Trim()== display_form_str)
{
menuItem.Visible = true ;
break ;
} // <-添加以封装"break;"命令,以便仅在匹配时触发
}
}
ToolStripMenuItems
是从ToolStripDropDownItem
派生的,因此,如果要比较的菜单项位于同一菜单下拉菜单中(意味着它们垂直显示),那么您拥有的是一个ToolStripMenuItem
包含另一个ToolStripMenuItems
.要访问这些文件,您需要遍历DropDownItems
属性中的ToolStripMenuItems
.
私有 void formm_display_function(字符串 display_form_str)
{
foreach (ToolStripMenuItem menuItem in this ..menuStrip1 .项目)
{
foreach (ToolstripMenuItem子项 in menuitem.DropDownItems)
{
如果(subitem.Text.Trim()== display_form_str)
{
subitem.Visible = true ;
break ;
}
}
}
}
[/EDIT]
Hi to all!
Here I create a code to check the menuitems
private void formm_display_function(string display_form_str)
{
foreach (ToolStripMenuItem menuItem in this.menuStrip1.Items)
{
if (menuItem.Text.Trim() == display_form_str){
menuItem.Visible = true;
break;
}
}
In this code only the first menu is checking
I have five items
display_form_str contains one of the items from menu
but its checking only the first menu items
Looks like you only have half of the curly braces showing, this would indicate that the break; command is being hit during every pass. Make sure you encapsulate the entire statement:
private void formm_display_function(string display_form_str) { foreach (ToolStripMenuItem menuItem in this.menuStrip1.Items) { if (menuItem.Text.Trim() == display_form_str) { menuItem.Visible = true; break; } // <-- added to encapsulate 'break;' command so it only fires when a match is made } }
[EDIT]
ToolStripMenuItems
are derived fromToolStripDropDownItem
, so if the menu items you are trying to compare against are in the same menu drop down (meaning they show vertically), then what you have is oneToolStripMenuItem
containing the otherToolStripMenuItems
. To access these, you need to iterate through theToolStripMenuItems
in theDropDownItems
property.
private void formm_display_function(string display_form_str) { foreach (ToolStripMenuItem menuItem in this.menuStrip1.Items) { foreach(ToolStripMenuItem subitem in menuitem.DropDownItems) { if (subitem.Text.Trim() == display_form_str) { subitem.Visible = true; break; } } } }
[/EDIT]
这篇关于检查菜单项的可见性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!