检查菜单项的可见性 [英] checking menu items visibility

查看:62
本文介绍了检查菜单项的可见性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!

在这里,我创建了一个代码来检查菜单项

 私有 无效 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 from ToolStripDropDownItem, 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 one ToolStripMenuItem containing the other ToolStripMenuItems. To access these, you need to iterate through the ToolStripMenuItems in the DropDownItems 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆