winform中生成TreeView树
无论是webform还是winform,TreeView都是常用功能。使用递归方法很方便。
下面分享一个小实例。
数据库中3个字段,分别是:ID,itemType_name,itemType_PID
private void itemType_Load(object sender, EventArgs e)
{
dataBind();
} private void dataBind()
{ //获取数据
string sql = "select * from itemType order by itemType_paixu"; DB db = new DB();
string _msg = "";
DataTable DT = db.GetDt(sql, out _msg);
// treeView1.Nodes.Clear(); //添加顶节点
TreeNode tempNode = new TreeNode();
tempNode.Text = "商品类别";
tempNode.Name = "0";
treeView1.Nodes.Add(tempNode);
// nodeBind(treeView1, DT, "0", tempNode);
treeView1.ExpandAll();
//
} public void nodeBind(TreeView _treeView, DataTable _dt, string _filter, TreeNode _pNode)
{ //循环构建树
string sFilter = "itemType_PID=" + _filter;
TreeNode parentNode = _pNode; DataView dv = new DataView(_dt); dv.RowFilter = sFilter;
if (dv.Count > 0)
{
foreach (DataRowView drv in dv)
{
TreeNode tempNode = new TreeNode(); tempNode.Text = drv["itemType_name"].ToString();
tempNode.Name = drv["ID"].ToString(); if (parentNode != null)
parentNode.Nodes.Add(tempNode);
else
_treeView.Nodes.Add(tempNode); nodeBind(_treeView, _dt, drv["ID"].ToString(), tempNode);
}
}
}
上面这个例子是有固定根节点的,下面这个例子是没有根节点的,递归构建更方便。
private void codeitem_Load(object sender, EventArgs e)
{
dataBind();
} private void dataBind()
{ //获取数据
string sql = "select * from codeitem order by codeitem_paixu"; DB db = new DB();
string _msg = "";
DataTable DT = db.GetDt(sql, out _msg);
// treeView1.Nodes.Clear();
nodeBind(treeView1, DT, "0", null);
treeView1.ExpandAll();
//
} public void nodeBind(TreeView _treeView, DataTable _dt, string _filter, TreeNode _pNode)
{ //循环构建树
string sFilter = "codeitem_pcode=’" + _filter + "’";
TreeNode parentNode = _pNode; DataView dv = new DataView(_dt); dv.RowFilter = sFilter;
if (dv.Count > 0)
{
foreach (DataRowView drv in dv)
{
TreeNode tempNode = new TreeNode(); tempNode.Text = drv["codeitem_name"].ToString();
tempNode.Name = drv["ID"].ToString(); if (parentNode != null)
parentNode.Nodes.Add(tempNode);
else
_treeView.Nodes.Add(tempNode); nodeBind(_treeView, _dt, drv["codeitem_code"].ToString(), tempNode);
}
}
}
bubuko.com版权所有,禁止转载。原地址:【winform,TreeView树,树形菜单,bubufx】
winform中生成TreeView树的更多相关文章
- Winform中生成自动控件
场景: 前几天项目需要模拟数据,但是实际设备还没有接上,就自己用Winform搭建了一个数据模拟器,生成数据给平台.这里又一个需求,就是从数据库中找出设备,然后自动生成控件,勾选就表示开启该设备,能上 ...
- winform中的TreeView的数据绑定
#region 绑定TreeView /// <summary> /// 绑定TreeView(利用TreeNode) /// </summary> /// <param ...
- VS 的winform中生成release模式
我试过,直接在项目的"Properties"中,修改"Build"标签的"Configuration"还不行.因为之前将不常用的工具栏隐藏了 ...
- Winform中的Treeview动态绑定数据库
http://bbs.csdn.net/topics/370139193 SQL code ? 1 2 3 4 5 6 CREATE TABLE [dbo].[Company] ( [Id ...
- WinForm开发中针对TreeView控件改变当前选择节点的字体与颜色
本文转载:http://www.cnblogs.com/umplatform/archive/2012/08/29/2660240.html 在B/S开发中,对TreeView控件要改变当前选中节点的 ...
- WinForm控件TreeView 只部分节点显示 CheckBox
WinForm控件TreeView 只部分节点显示 CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示check ...
- C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得
在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...
- MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件
类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...
- Winform中Treeview控件失去焦点,将选择的节点设置为高亮显示 (2012-07-16 13:47:07)转载▼
Winform中Treeview控件失去焦点,将选择的节点设置为高亮显示 (2012-07-16 13:47:07)转载▼标签: winform treeview drawnode Treeview控 ...
随机推荐
- xmlrpc实现bugzilla api调用(无会话保持功能,单一接口请求)
xmlrpc实现bugzilla4 xmlrpc api调用(无会话保持功能,单一接口请求),如需会话保持,请参考我的另外一篇随笔(bugzilla4的xmlrpc接口api调用实现分享: xml ...
- [windows]部分前缀以及其意义
前缀 意义 CS 类风格选项 CW 创建窗口选项 DT 文本绘制选项 IDI 图标的ID号 MB 消息框选项 SND 声音选项 WM 窗口消息 WS 窗 ...
- Java中获取键盘输入值的三种方法
Java中获取键盘输入值的三种方法 Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...
- Caffe 源碼閱讀(六) data_layer.cpp
>>>>>>>>>>>>>>>>>>>>>>>>> ...
- [转]OOAD基本概念
转载地址:http://www.cnblogs.com/zfc2201/archive/2012/12/09/2810532.html 尊重原作者,转载请注明 学习目标: 1.理解与掌握面向对象的概念 ...
- 第一章Android系统移植与驱动开发概述--读书笔记
以前,初步学习过嵌入式Linux驱动开发的基础课程,对于驱动开发可以说是有了一点点微末的基础吧.首先我们要对Android嵌入式系统有一个初步的认识,Android系统发展到今天已经具备了完善的架构. ...
- nodejs+express安装
1.安装nodejs http://www.nodejs.org/下载或直接安装nodejs. 安装默认会勾选加入环境变量. 打开cmd,输入node -v.测试是否成功. 2.安装express 命 ...
- Chapter 3.GDI/DirectDraw Internal Data Structures
说明,在这里决定跳过第二章,实在是因为里面涉及的内容太理论,对我而言又太艰深 3.1 HANDLES AND OBJECT-ORIRNTED PROGRAMMING In normal object- ...
- WIN32服务程序(二):卸载服务
卸载服务的过程是这样的,用OpenSCManager打开SCM,使用OpenService打开准备卸载的服务,通过QueryServiceStatus查询该服务的状态是否停止,如果否,则先停止该服务C ...
- 特殊的对象引用---$this
只要是对象中的成员,必须使用这个对象($this)来访问到这个对象内部的属性和方法 特殊对象的引用$this就是再对象内部的成员方法中,代表本对象的一个引用,但智能在对象的成员方法中使用,不管是在对象 ...