C#----遍历菜单项加载到TreeView中(目前只支持二级菜单)

来源:互联网 发布:路由器mac地址过滤破解 编辑:程序博客网 时间:2024/05/16 06:59

暂时只支持二级菜单。
f为带菜单的窗体。
 private void MainMenuToTreeView(Form f)
        {
            foreach (Control c in f.Controls)
            {
                if (c is MenuStrip)
                {
                    MenuStrip menu = (MenuStrip)c;
                    foreach (ToolStripMenuItem menuitem2 in menu.Items)
                    {
                        treeView1.Nodes.Add(menuitem2.Name, menuitem2.Text);
                        for (int i = 0; i < menuitem2.DropDownItems.Count; i++)
                        {
                            treeView1.Nodes[menuitem2.Name].Nodes.Add(menuitem2.DropDownItems[i].Name, menuitem2.DropDownItems[i].Text);

                             treeView1.Nodes[menuitem2.Name].Nodes[i].Tag=i;

                             //Tag是节点的标记,设置此标记有助于根据权限控制菜单的可用状态
                            
                        }
                    }
                }
            }
        }

在TreeView中加入CheckBox,根据用户的选择,存成字符串(例如:1,0,1,1,0)。用户登录后根据此字符串设置菜单的可见状态

原创粉丝点击