用C#如何在winform程序中创建折叠式导航菜单????

jiangzhe556 2009-06-10 12:50:02
请问各位高人:如何利用c#在winform程序中实现一个类似.net 2005 开发界面中左侧的"工具箱".
使用.net开发程序的朋友,当你要利用工具箱为窗体添加控件时就会看到我说的这个折叠式的导航菜单,可能我起的名字不一定正确.我的目的是要在我的windows窗体的左侧也放一个类似于"工具箱"的控件,起到一个导航菜单的作用.在这个菜单中有几个主菜单,当用户单击其中一个主菜单时,其下的子菜单就会显示出来,而当用户单击另外的主菜单时,先前展开的菜单就会合并起来(或称隐藏起来)就像.net的"工具箱"一样.请问有谁开发过嘛?给点思路也行.
...全文
3017 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
nimadewangba 2011-05-22
  • 打赏
  • 举报
回复
强大,强大,强大,强大,强大,强大,强大,强大,强大,强大,强大,
bbbbbb1984114 2011-05-22
  • 打赏
  • 举报
回复
恩~感谢楼上各位大大
Jonney-Wang 2011-04-23
  • 打赏
  • 举报
回复
我也在寻找这个控件
caojibo 2009-08-06
  • 打赏
  • 举报
回复
那位大侠能提供一点DevComponents.DotNetBar2.dll 做可这点菜单的参考资料,不胜感激!!!!
jiangzhe556 2009-06-10
  • 打赏
  • 举报
回复
那个控件,我刚接触C#应用程序开发,对这里的控件不太了解呢!
Profiteerchen 2009-06-10
  • 打赏
  • 举报
回复
有现成控件,否则楼主自行开发吧
jiangzhe556 2009-06-10
  • 打赏
  • 举报
回复
没人吗?// DDD
oneatree 2009-06-10
  • 打赏
  • 举报
回复
treeview就可以了
leungzhq2000 2009-06-10
  • 打赏
  • 举报
回复
DevComponents.DotNetBar2.dll 下载这个第三方控件 基本上能解决你的问题!
yangguangwei513 2009-06-10
  • 打赏
  • 举报
回复
你说的那种空间是不是就和记事本里的工具条差不多?

好像叫什么TOOLSRIP?

有现成的空间,自己找下。
jiangzhe556 2009-06-10
  • 打赏
  • 举报
回复
ddddd
zhensoft163 2009-06-10
  • 打赏
  • 举报
回复
http://download.csdn.net/source/1119274
动态菜单
Alex_XXH 2009-06-10
  • 打赏
  • 举报
回复
treeview就可以了,我做过。
liyonghui123 2009-06-10
  • 打赏
  • 举报
回复
下在一个第三方控件,如donetbar
wartim 2009-06-10
  • 打赏
  • 举报
回复
wuyq11 2009-06-10
  • 打赏
  • 举报
回复
还可使用FlowLayoutPanel设置菜单
wuyq11 2009-06-10
  • 打赏
  • 举报
回复
在winform里设置一MDI导航窗体。
在页面上设置label,移动label位置,通过MouseLeave,Click等事件设置显示。
jiangzhe556 2009-06-10
  • 打赏
  • 举报
回复
vs.net 这里面没有自带这样的组件吗?
lovvver 2009-06-10
  • 打赏
  • 举报
回复
找个UtilityLibrary.dll,里面有,如果找不到,我可以发个给你。
jueyingfd 2009-06-10
  • 打赏
  • 举报
回复
就是树形结构吧?如果你感兴趣,我这儿有个例子,可以供你参考:
        #region 添加树节点
public void LoadTreeview()
{
trvFile.Nodes.Clear();
TreeNode tn = new TreeNode("全部资产",0,0);
this.trvFile.Nodes.Add(tn);

TreeNode child1 = new TreeNode("保管人",1,1);
tn.Nodes.Add(child1);
DataTable dtkeeper = kpd.SelectKeepingPerson();
int rowskeeper = dtkeeper.Rows.Count;
for (int i = 0; i < rowskeeper; i++)
{
TreeNode tnkeeper = new TreeNode(dtkeeper.Rows[i][1].ToString(),2,2);
tnkeeper.Tag = Convert.ToInt32(dtkeeper.Rows[i][0]);
child1.Nodes.Add(tnkeeper);
}

TreeNode child2 = new TreeNode("存放地点",1,1);
tn.Nodes.Add(child2);
DataTable dtaddress = sad.SelectStoreAddress();
int rowsadd = dtaddress.Rows.Count;
for (int i = 0; i < rowsadd; i++)
{
TreeNode tnaddress = new TreeNode(dtaddress.Rows[i][1].ToString(),2,2);
tnaddress.Tag = Convert.ToInt32(dtaddress.Rows[i][0]);
child2.Nodes.Add(tnaddress);
}

TreeNode child3 = new TreeNode("资产类别",1,1);
tn.Nodes.Add(child3);
DataTable dtcategory = ecd.SelectEquipmentCategory();
int rowscategory = dtcategory.Rows.Count;
for (int i = 0; i < rowscategory; i++)
{
TreeNode tncategory = new TreeNode(dtcategory.Rows[i][1].ToString(), 2, 2);
tncategory.Tag = Convert.ToInt32(dtcategory.Rows[i][0]);
child3.Nodes.Add(tncategory);
}

TreeNode child4 = new TreeNode("增加方式",1,1);
tn.Nodes.Add(child4);
DataTable dtpattern = apd.SelectAddPattern();
int rowspattern = dtpattern.Rows.Count;
for (int i = 0; i < rowspattern; i++)
{
TreeNode tnpattern = new TreeNode(dtpattern.Rows[i][1].ToString(),2,2);
tnpattern.Tag = Convert.ToInt32(dtpattern.Rows[i][0]);
child4.Nodes.Add(tnpattern);
}

//TreeNode child5 = new TreeNode("用户单位信息",1,1);
//tn.Nodes.Add(child5);
//DataTable dtunit = uuid.SelectUserUnitInfo();
//int rowsunit = dtunit.Rows.Count;
//for (int i = 0; i < rowsunit; i++)
//{
// TreeNode tnunit = new TreeNode(dtunit.Rows[i][1].ToString(), 2, 2);
// tnunit.Tag = Convert.ToString(dtunit.Rows[i][0]);
// child5.Nodes.Add(tnunit);
//}

TreeNode child6 = new TreeNode("使用部门",1,1);
tn.Nodes.Add(child6);
DataTable dtdepartment = udd.SelectUserDepartment();
int rowsdepartment = dtdepartment.Rows.Count;
for (int i = 0; i < rowsdepartment; i++)
{
TreeNode tndepartment = new TreeNode(dtdepartment.Rows[i][1].ToString(), 2, 2);
tndepartment.Tag = Convert.ToInt32(dtdepartment.Rows[i][0]);
child6.Nodes.Add(tndepartment);
}

TreeNode child7 = new TreeNode("使用状态",1,1);
tn.Nodes.Add(child7);
DataTable dtstate = usd.SelectUserState();
int rowsstate = dtstate.Rows.Count;
for (int i = 0; i < rowsstate; i++)
{
TreeNode tnstate = new TreeNode(dtstate.Rows[i][1].ToString(), 2, 2);
tnstate.Tag = Convert.ToInt32(dtstate.Rows[i][0]);
child7.Nodes.Add(tnstate);
}
TreeNode child8 = new TreeNode("用户单位信息", 1, 1);
tn.Nodes.Add(child8);
TreeNode child9 = new TreeNode("清除资产列表", 1, 1);
tn.Nodes.Add(child9);
}
加载更多回复(2)

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧