已有57人关注
遍历menustrip的菜单项给treeview出错
发表在C#图书答疑 2009-05-27
是否精华
版块置顶:
public void GetMenu(TreeView treeV, MenuStrip MenuS)
        {
            for (int i = 0; i < MenuS.Items.Count; i++) //遍历MenuStrip组件中的一级菜单项
            {
                //将一级菜单项的名称添加到TreeView组件的根节点中,并设置当前节点的子节点newNode1
                TreeNode newNode1 = treeV.Nodes.Add(MenuS.Items[i].Text);
                newNode1.Tag = 0;
                //将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
                ToolStripDropDownItem newmenu = (ToolStripDropDownItem)MenuS.Items[i];
                //判断当前菜单项中是否有二级菜单项
                if (newmenu.HasDropDownItems && newmenu.DropDownItems.Count > 0)
                    for (int j = 0; j < newmenu.DropDownItems.Count; j++)    //遍历二级菜单项
                    {
                        //将二级菜单名称添加到TreeView组件的子节点newNode1中,并设置当前节点的子节点newNode2
                        TreeNode newNode2 = newNode1.Nodes.Add(newmenu.DropDownItems[j].Text);
                        newNode2.Tag = int.Parse(newmenu.DropDownItems[j].Tag.ToString());
                        //将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
                        ToolStripDropDownItem newmenu2 = (ToolStripDropDownItem)newmenu.DropDownItems[j];
                        //判断二级菜单项中是否有三级菜单项
                        //if (newmenu2.HasDropDownItems && newmenu2.DropDownItems.Count > 0)
                        //for (int p = 0; p < newmenu2.DropDownItems.Count; p++)    //遍历三级菜单项
                        //将三级菜单名称添加到TreeView组件的子节点newNode2中
                        //newNode2.Nodes.Add(newmenu2.DropDownItems[p].Text);
                    }
            }
        }
老师,我调用这个方法后怎调试不了,提示未将对象引用设置到对象的实例.
分享到:
精彩评论 9
yxishe
学分:0 LV1
2009-05-27
沙发
搞了很久还是不行,不知道哪错了,菜单下有二级菜单,代码拷贝光盘的代码,是不是还有哪要设置呢,比如控件的属性什么的?书本里说将调用的子窗体的菜单项的tag属性,从1开始依次设置值,这个我不知道怎么弄,是不是跟这个有关系呢.不好意思啊老师,我是刚学,问题有点多,请见谅
yxishe
学分:0 LV1
2009-05-27
板凳
newNode2.Tag = int.Parse(newmenu.DropDownItems[j].Tag.ToString());这一句提示未将对象引用设置到对象的实例.
我已经在menustrip控件里加二级菜单了,但还是有这个提示,搞了半天,咳,看来买错书了,这本不适合我这菜鸟啊.
yxishe
学分:0 LV1
2009-05-27
地板
终于可以看到二级了,把newNode2.Tag = int.Parse(newmenu.DropDownItems[j].Tag.ToString());这句给注释了就可以,请问老师,问题出再那里,谢谢
yxishe
学分:0 LV1
2009-05-30
4L
二级菜单有没有值要在哪看呢,如果是直接在窗体点菜单栏看的话,那我已经都添加了二级菜单了,老师这次能不能详细的说一下,我不想再问这个问题了,希望这次能解决,呵呵.
yxishe
学分:0 LV1
2009-05-30
5L
问题解决,给每个二级菜单的tag属性加个值就可以了,从1开始加起,上次问老师你,用不用设置些什么你就说不用,郁闷哦
首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照