首页上一页 1 下一页尾页 1 条记录 1/1页
把菜单内容加载到列表中,出错了,请老师帮看下,是什么原因呀?
发表在C#图书答疑
2010-07-18
是否精华
是
否
版块置顶:
是
否
//以下是form1代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
cls_treeViewMenu treeV = new cls_treeViewMenu();
treeV.GetMenu(treeView1,menuStrip1);
}
}
}
//以下是类代码cls_treeViewMenu
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
class cls_treeViewMenu
{
public void GetMenu(TreeView treeV, MenuStrip MenuS)
{
//遍历MenuStrip菜单中的一级菜单项
for (int i = 0; i < MenuS.Items.Count; i++)
{
//将一级菜单项的名称添加到TreeView控件的根节点中,并设置当前节点的子节点newNode1
TreeNode newNode1 = treeV.Nodes.Add(MenuS.Items[i].Text);
//将当前菜单项的所有相关信息存入到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);
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
ToolStripDropDownItem newmenu2 = (ToolStripDropDownItem)newmenu.DropDownItems[j]; [font color=#FF0000]//错误提示:无法将类型为“System.Windows.Forms.ToolStripSeparator”的对象强制转换为类型“System.Windows.Forms.ToolStripDropDownItem”。[/font]
//判断二级菜单项中是否有三级菜单项
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);
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
cls_treeViewMenu treeV = new cls_treeViewMenu();
treeV.GetMenu(treeView1,menuStrip1);
}
}
}
//以下是类代码cls_treeViewMenu
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
class cls_treeViewMenu
{
public void GetMenu(TreeView treeV, MenuStrip MenuS)
{
//遍历MenuStrip菜单中的一级菜单项
for (int i = 0; i < MenuS.Items.Count; i++)
{
//将一级菜单项的名称添加到TreeView控件的根节点中,并设置当前节点的子节点newNode1
TreeNode newNode1 = treeV.Nodes.Add(MenuS.Items[i].Text);
//将当前菜单项的所有相关信息存入到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);
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中
ToolStripDropDownItem newmenu2 = (ToolStripDropDownItem)newmenu.DropDownItems[j]; [font color=#FF0000]//错误提示:无法将类型为“System.Windows.Forms.ToolStripSeparator”的对象强制转换为类型“System.Windows.Forms.ToolStripDropDownItem”。[/font]
//判断二级菜单项中是否有三级菜单项
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);
}
}
}
}
}