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 ...
随机推荐
- ENVI Services Engine5.1 应用开发入门教程
原文地址: ENVI Services Engine5.1 应用开发入门教程_ENVI-IDL中国_新浪博客 http://blog.sina.com.cn/s/blog_764b1e9d0102uy ...
- 理解 PHP 中的 Streams
Streams 是PHP提供的一个强有力的工具,我们常常在不经意会使用到它,如果善加利用将大大提高PHP的生产力. 驾驭Streams的强大力量后,应用程序将提升到一个新的高度. 下面是PHP手册中对 ...
- Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值
1 Statement和PreparedStatement的特点 a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录 b)对于创建和 ...
- Java汉字排序(1)排序前要了解的知识(数组和list的排序接口)
对于包含汉字的字符串来说,排序的方式主要有两种:一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 11:27 最 ...
- git clone 出错SSL certificate problem, verify that the CA cert is OK.
先调用这个 export GIT_SSL_NO_VERIFY=true 之后再执行git clone
- poj 1259 Agri-Net(最小生成树)
题目:http://poj.org/problem?id=1258 题意:模板题 和2485差不多 就是求相连后的最小值. #include <iostream> #include< ...
- [原]Unity3D深入浅出 - Shader基础开发
概述 简单来讲,shader是为渲染管线中的特定处理截断提供算法的一段代码.Shader是伴随着可编程渲染管线出现的,开发者可使用Shader对渲染过程加以控制,拥有更大的创作控件,因此Shader的 ...
- Spark(1) - Getting Started with Apache Spark
Introduction Apache Spark is a general-purpose cluster computing system to process big data workload ...
- Project Euler 26 Reciprocal cycles
题意:求1到n中所有数的倒数中循环小数循环体最长的数 解法:如果一个数的质因子只有2和5,那么这个数的倒数一定不是一个循环小数.如果一个数含有质因子2或5,那么它的循环体和去掉质因子2和5之后的数的循 ...
- mycat分布式mysql中间件(数据库切分概述)[转]
mysql数据库切分 前言 通 过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时 候,我们还是会面临到扩展 ...