Winform- TreeView的使用例子
自动递归生成树,点击树节点的事件在treeView1_AfterSelect里编写,不多说了,直接上代码,备注在这里一下
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} public DataSet ds = null; private void button1_Click(object sender, EventArgs e)
{
tv_bind();
} public void tv_bind()
{ //从数据库中读取分类信息至DataSet
//绑定前先清空数据集
treeView1.Nodes.Clear(); ds = DbHelperSQL.Query("select * from sys_rtxmenus");
//如果数据库中有信息那么构造树,否则提示无接点
if (ds.Tables[].Rows.Count > )
{
//清除树节点,从根添加树
treeView1.Nodes.Clear();
Add_tree(, (TreeNode)null);
}
else
{
treeView1.Nodes.Clear();
TreeNode node = new TreeNode();
node.Text = "暂无任何分类信息";
treeView1.Nodes.Add(node);
} } //递归树
private void Add_tree(int pid, TreeNode pnode)
{
DataRow[] dr = ds.Tables[].Select("pid=" + pid);
foreach (DataRow row in dr)
{
TreeNode node = new TreeNode();
if (pnode == null)
{
node.Text = row["menuname"].ToString();
node.Tag = row["id"].ToString();
node.ToolTipText = row["menuurl"].ToString();
treeView1.Nodes.Add(node);
Add_tree(int.Parse(row["id"].ToString()), node);
}
else
{
node.Text = row["menuname"].ToString();
node.Tag = row["id"].ToString();
node.ToolTipText = row["menuurl"].ToString();
pnode.Nodes.Add(node);
Add_tree(int.Parse(row["id"].ToString()), node);
}
}
} //按扭的点击事件
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
// 设置显示图标的变换
if (null == e.Node.FirstNode)
{
e.Node.ImageIndex = ;
e.Node.SelectedImageIndex = ;
}
// 打开新的窗口,每一级对应一类窗口
if (e.Node != null && null == e.Node.FirstNode)
{
string tag = e.Node.Tag.ToString();
string name = e.Node.Text.ToString(); switch (name)
{
case "公告类型":
MessageBox.Show("打开公告类型");
break;
case "公告列表":
MessageBox.Show("打开公告列表");
break; }
}
} }
Winform- TreeView的使用例子的更多相关文章
- 关于WinForm TreeView的分享~
最近在写个测试demo的时候使用到WinForm TreeView,已经好久没接触了,有些生疏,所以还是记录一下遇到的一些问题. 1.如果动态绑定TreeView,这个功能一般会在数据量不确定,需要去 ...
- C# Winform TreeView 的一些基本用法
下面是treeview的用法TreeView组件是由多个类来定义的,TreeView组件是由命名空间"System.Windows .Forms"中的"TreeView& ...
- winform treeView 数据绑定
转载:http://www.jetwu.cn/archives/737 winform treeView 数据绑定 private void Form1_Load(object sender, Eve ...
- C# winform多线程的小例子
在文本框中输入一个数字,点击开始累加按钮,程序计算从1开始累计到该数字的结果.因为该累加过程比较耗时,如果直接在UI线程中进行,那么当前窗口将出现假死.为了有更好的用户体验,程序启动一个新的线程来单独 ...
- Winform TreeView 查找下一个节点
转载:http://www.cnblogs.com/Ruiky/archive/2013/02/01/2888674.html public static class TreeViewHelper { ...
- Winform TreeView控件技巧
在开发的时候经常使用treeview控件来显示组织结构啊,目录结构啊,通常会结合属性checkedboxs,来做选中,取消的操作下面是一个选中,取消的小例子,选中节点的时候,如果节点存在子节点,可以选 ...
- winform Treeview控件使用
做角色菜单权限时用到treeview控件做树状显示菜单,简单总结了一下用法: 1.在winform窗体中拖入treeview控件,注意修改属性CheckBoxes属性为true,即在节点旁显示复选框 ...
- winform TreeView的一些用法以及异步加载
今天,主要弄了一下对于树型控件的一些方法,以及异步加载.参考: http://www.cnblogs.com/greatverve/archive/2012/03/23/winform-treevie ...
- C# winform TreeView中关于checkbox选择的完美类
public static class TreeViewCheck { /// <summary> /// 系列节点 Checked 属性控制 /// </summary> / ...
- c# winform TreeView NODE(节点) 重命名或获取节点修改后的值
在程序开发过程中我们经常用到treeview,还经常要修改节点的名字.节点名字修改后还想及时更新数据库.这时问题就来了,怎样获取NODE(节点)更新后的值呢?本人试了很多方法最终分析出treeview ...
随机推荐
- WPF中通过代码定义模板
WPF中可以再XAML中定义模板,也可以通过C#代码定义模板,通过代码可能更清楚的看清其逻辑,而且代码的好处就是可以随时动态的去操作,而在XAML中定义的一般都是静态的. //控件呈现的显示内容1(这 ...
- 捉虫记2:windows程序句柄泄露的上下文环境
作为程序员,开发程序是基本功,而调试程序也是必不可少的技能之一.软件在主体功能开发完成后会经历各个阶段的测试,才会被发布.在测试过程中,出现较多的可能就是内存泄漏,句柄泄漏,异常崩溃等属于非功能型的软 ...
- C#中this在构造函数时的使用
今天编程的时候,想要用this来处理构造函数,想了半天没有想起来 后来找了自己以前记录的 http://www.cnblogs.com/chucklu/p/4842766.html public Cu ...
- C语言动态生成二维数组
# 动态创建二维数组示例 #include "stdlib.h" #include "stdio.h" #include <malloc.h> in ...
- ngui 脚本绘制sprite
public GameObject _background; public UIAtlas atlas; private Dictionary<int, UISprite> _allCar ...
- linux aio
前几天nginx的0.8.x正式成为stable,然后看了下代码,发现0.8加入了linux native aio的支持,我们知道在linux下有两种aio,一种是glibc实现的aio,这个比较烂, ...
- [NOI2005] 维修数列
1500: [NOI2005]维修数列 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 8397 Solved: 2530 Description In ...
- Java泛型类与类型擦除
转载自:http://blog.csdn.net/lonelyroamer/article/details/7868820 一.Java泛型的实现方法:类型擦除 前面已经说了,Java的泛型是伪泛型. ...
- 剑指Offer:第一个只出现一次的字符
题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",这输出'b' // 第一个只出现一次的字符 #include <stdio.h> char f ...
- 在win2008中配置ServU
因为08的防火墙要求比较高.很多端口都关闭,所以要设置防火墙. 首先设置入站规则 1.新建一条规则,规则类型选择“端口”,然后TCP,设置为20-21,60010-60020,然后允许链接,在配置文件 ...