C# WinForm TreeListView控件用法初步
2016-05-11 13:56
701 查看
C# WinForm TreeListView控件用法初步
TreeListView是第三方控件,我找到一个vs2003下的源码,升级到vs2010
使用起来没有什么不同。刚刚用了一下,感觉挺不错。分享一下。
1.把TreeListView控件添加到工具箱。
右击工具箱中的常规选项卡->选择项,找到System.Windows.Forms.TreeListView.dll
添加进来。然后就可以像普通控件一样拖一个到窗体。
2.设置属性这里主要设置一下Columns集合与SmallImageList
设置用来显示节点图标。如果不设置SmallImageList属性,无法正常显示。
如果不设置图标的话,图标显示的位置为空白。
CheckBoxs属性可以设置为Recursive可以显示成复选框。
3.通过AddItems()添加小项,
编写BeforeExpand();BeforeCollapse();BeforeLabelEdit();
三个事件的响应函数。就是展开或者折叠时显示哪个图标。
4.附带TreeListView的源码,以备二次开发。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TreeListViewApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
AddItems();
}
private void AddItems()
{
//第一个参数是要显示的文本,第二个参数是要显示的图标索引。
TreeListViewItem itemA = new TreeListViewItem("A", 0);
itemA.Expand();//展开
itemA.SubItems.Add("AA");//SubItems相当于同一行的不同列值。
itemA.SubItems.Add("BB");//第三列
//二级
TreeListViewItem itemA0 = new TreeListViewItem("A0", 1);
itemA.Items.Add(itemA0);
//三级
TreeListViewItem itemA00 = new TreeListViewItem("A00", 3);
itemA0.Items.Add(itemA00);
treeListView1.Items.Add(itemA);
}
//折叠事件
private void treeListView1_BeforeCollapse(object sender, TreeListViewCancelEventArgs e)
{
//索引1,2分别对应折叠与展开的图标。
if (e.Item.ImageIndex == 2) e.Item.ImageIndex = 1;
}
//展开事件
private void treeListView1_BeforeExpand(object sender, TreeListViewCancelEventArgs e)
{
if (e.Item.ImageIndex == 1) e.Item.ImageIndex = 2;
}
//编辑状态
private void treeListView1_BeforeLabelEdit(object sender, TreeListViewBeforeLabelEditEventArgs e)
{
//设置LabelEdit属性为True才可激活
if (e.Item.ImageIndex < 1 || e.Item.ImageIndex > 2)//第一级与第三级只可以编辑第一列。
e.ColumnIndex = 0;
if (e.ColumnIndex == 1)//如果是第二列,显示一个下拉框。
{
ComboBox combobox = new ComboBox();
combobox.Items.AddRange(new string[] { "New value 1", "New value 2", "New value 3" });
e.Editor = combobox;
}
}
}
}
源码下载:http://files.cnblogs.com/greatverve/TreeListViewApp.rar
程序员的网店:http://shop108042866.taobao.com呵呵
凡事以大气象去面对,优秀是一种习惯。
分类:
winForm
标签:
treelistview
好文要顶
关注我
收藏该文联系我
大气象
关注 - 13
粉丝 - 652
+加关注
7
0
(请您对文章做出评价)
«
上一篇:用c#创建支持多语言的WinForm应用程序
»
下一篇:六字诀养生法 气功口诀
发表评论
#1楼2010-10-21
10:11 |
通用C#系统架构
不错,蛮好的控件。
支持(0)反对(0) http://pic.cnblogs.com/face/u35584.jpg
#2楼[楼主]2010-10-21
10:13 |
大气象
@ 吉日嘎拉 不仅权通用权限
咋有幸被吉哥看到了,呵呵。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#3楼2010-10-21
14:32 |
尤鹏飞
继续努力!大气象!
支持(0)反对(0)
#4楼2010-10-21
14:32 |
尤鹏飞
很不错的谢谢楼主分享
支持(0)反对(0)
#5楼2010-10-21
15:01 |
通用C#系统架构
这个文章推荐的人不少了,算是很多了。
支持(0)反对(0) http://pic.cnblogs.com/face/u35584.jpg
#6楼[楼主]2010-10-21
16:15 |
大气象
@ 尤鹏飞
鹏飞万里,呵呵。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#7楼[楼主]2010-10-21
16:17 |
大气象
@ 吉日嘎拉 不仅权通用权限
我今天刚刚想DuDu申请开通发首页精华的权限,
我发了精华区,没有看到,是不是需要审核呀?
只有发到候选区了,呵呵,这算不上精华,
估计许多人会需要使用这控件。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#8楼2010-10-25
15:55 |
邵锡栋
继续努力!大气象!
支持(0)反对(0)
#9楼[楼主]2010-10-26
09:41 |
大气象
@ 邵锡栋
3q
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#10楼2010-10-27
23:19 |
鬼神
继续努力!大气象!
支持(0)反对(0) http://pic.cnblogs.com/face/u23620.jpg
#11楼[楼主]2010-10-28
08:34 |
大气象
@ 鬼神
3q
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#12楼2011-08-19
09:35 |
王清培
继续努力!大气象!
支持(0)反对(0) http://pic.cnblogs.com/face/u202205.jpg?id=13105403
#13楼2012-06-11
17:44 |
llllboy
LZ 项目刚好用到了这个控件
但是有个需求 是这样的 求大牛们帮忙
具体如下
我们项目是WEB项目,想把这个控件做成列表
点击父单带出子单 但是每个单上面要有URL 跳转到对应的页面(这个怎么实现)
还有问题就是 如果它有子单点击这一行是 就应该是查询它下的子单
如果没有了 点击它就是跳转到对应单据的详细页面
求大牛们帮忙 谢谢啦
支持(0)反对(0) http://pic.cnblogs.com/face/327120/20130211222920.png
#14楼[楼主]2012-06-12
10:10 |
大气象
@ 王丁
web就用js配合实现吧。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#15楼2012-06-12
18:39 |
llllboy
LZ 能给个具体思路吗?
支持(0)反对(0) http://pic.cnblogs.com/face/327120/20130211222920.png
#16楼2012-07-03
09:48 |
猛龍過江
继续努力!大气象!
支持(0)反对(0) http://pic.cnblogs.com/face/u291155.jpg?id=24095254
#17楼2013-03-11
15:11 |
山头青
继续努力!大气象!
支持(0)反对(0)
#18楼2013-12-23
14:51 |
sendreams
太老了,够难看的,都不管审美了?
支持(0)反对(0)
#19楼2014-04-15
11:35 |
必须好好学习.net
你好,我想问下,我是按着你的代码自己写了遍,只不过没有加图片,为什么父子节点第一列的数据都是居左,不是像你这样子节点的数据是在父节点之后的,不像你这种效果的。
支持(0)反对(0)
#20楼33677842016/2/27
15:28:57 2016-02-27 15:28 |
mmmm_222
有bug,双击可编辑列之后treelistview Please use OnBeforeLabelEdit(TreeListViewLabelEditEventArgs e)出现异常,请问是啥原因呢
支持(0)反对(0)
TreeListView是第三方控件,我找到一个vs2003下的源码,升级到vs2010
使用起来没有什么不同。刚刚用了一下,感觉挺不错。分享一下。
1.把TreeListView控件添加到工具箱。
右击工具箱中的常规选项卡->选择项,找到System.Windows.Forms.TreeListView.dll
添加进来。然后就可以像普通控件一样拖一个到窗体。
2.设置属性这里主要设置一下Columns集合与SmallImageList
设置用来显示节点图标。如果不设置SmallImageList属性,无法正常显示。
如果不设置图标的话,图标显示的位置为空白。
CheckBoxs属性可以设置为Recursive可以显示成复选框。
3.通过AddItems()添加小项,
编写BeforeExpand();BeforeCollapse();BeforeLabelEdit();
三个事件的响应函数。就是展开或者折叠时显示哪个图标。
4.附带TreeListView的源码,以备二次开发。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TreeListViewApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
AddItems();
}
private void AddItems()
{
//第一个参数是要显示的文本,第二个参数是要显示的图标索引。
TreeListViewItem itemA = new TreeListViewItem("A", 0);
itemA.Expand();//展开
itemA.SubItems.Add("AA");//SubItems相当于同一行的不同列值。
itemA.SubItems.Add("BB");//第三列
//二级
TreeListViewItem itemA0 = new TreeListViewItem("A0", 1);
itemA.Items.Add(itemA0);
//三级
TreeListViewItem itemA00 = new TreeListViewItem("A00", 3);
itemA0.Items.Add(itemA00);
treeListView1.Items.Add(itemA);
}
//折叠事件
private void treeListView1_BeforeCollapse(object sender, TreeListViewCancelEventArgs e)
{
//索引1,2分别对应折叠与展开的图标。
if (e.Item.ImageIndex == 2) e.Item.ImageIndex = 1;
}
//展开事件
private void treeListView1_BeforeExpand(object sender, TreeListViewCancelEventArgs e)
{
if (e.Item.ImageIndex == 1) e.Item.ImageIndex = 2;
}
//编辑状态
private void treeListView1_BeforeLabelEdit(object sender, TreeListViewBeforeLabelEditEventArgs e)
{
//设置LabelEdit属性为True才可激活
if (e.Item.ImageIndex < 1 || e.Item.ImageIndex > 2)//第一级与第三级只可以编辑第一列。
e.ColumnIndex = 0;
if (e.ColumnIndex == 1)//如果是第二列,显示一个下拉框。
{
ComboBox combobox = new ComboBox();
combobox.Items.AddRange(new string[] { "New value 1", "New value 2", "New value 3" });
e.Editor = combobox;
}
}
}
}
源码下载:http://files.cnblogs.com/greatverve/TreeListViewApp.rar
程序员的网店:http://shop108042866.taobao.com呵呵
凡事以大气象去面对,优秀是一种习惯。
分类:
winForm
标签:
treelistview
好文要顶
关注我
收藏该文联系我
大气象
关注 - 13
粉丝 - 652
+加关注
7
0
(请您对文章做出评价)
«
上一篇:用c#创建支持多语言的WinForm应用程序
»
下一篇:六字诀养生法 气功口诀
发表评论
#1楼2010-10-21
10:11 |
通用C#系统架构
不错,蛮好的控件。
支持(0)反对(0) http://pic.cnblogs.com/face/u35584.jpg
#2楼[楼主]2010-10-21
10:13 |
大气象
@ 吉日嘎拉 不仅权通用权限
咋有幸被吉哥看到了,呵呵。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#3楼2010-10-21
14:32 |
尤鹏飞
继续努力!大气象!
支持(0)反对(0)
#4楼2010-10-21
14:32 |
尤鹏飞
很不错的谢谢楼主分享
支持(0)反对(0)
#5楼2010-10-21
15:01 |
通用C#系统架构
这个文章推荐的人不少了,算是很多了。
支持(0)反对(0) http://pic.cnblogs.com/face/u35584.jpg
#6楼[楼主]2010-10-21
16:15 |
大气象
@ 尤鹏飞
鹏飞万里,呵呵。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#7楼[楼主]2010-10-21
16:17 |
大气象
@ 吉日嘎拉 不仅权通用权限
我今天刚刚想DuDu申请开通发首页精华的权限,
我发了精华区,没有看到,是不是需要审核呀?
只有发到候选区了,呵呵,这算不上精华,
估计许多人会需要使用这控件。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#8楼2010-10-25
15:55 |
邵锡栋
继续努力!大气象!
支持(0)反对(0)
#9楼[楼主]2010-10-26
09:41 |
大气象
@ 邵锡栋
3q
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#10楼2010-10-27
23:19 |
鬼神
继续努力!大气象!
支持(0)反对(0) http://pic.cnblogs.com/face/u23620.jpg
#11楼[楼主]2010-10-28
08:34 |
大气象
@ 鬼神
3q
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#12楼2011-08-19
09:35 |
王清培
继续努力!大气象!
支持(0)反对(0) http://pic.cnblogs.com/face/u202205.jpg?id=13105403
#13楼2012-06-11
17:44 |
llllboy
LZ 项目刚好用到了这个控件
但是有个需求 是这样的 求大牛们帮忙
具体如下
我们项目是WEB项目,想把这个控件做成列表
点击父单带出子单 但是每个单上面要有URL 跳转到对应的页面(这个怎么实现)
还有问题就是 如果它有子单点击这一行是 就应该是查询它下的子单
如果没有了 点击它就是跳转到对应单据的详细页面
求大牛们帮忙 谢谢啦
支持(0)反对(0) http://pic.cnblogs.com/face/327120/20130211222920.png
#14楼[楼主]2012-06-12
10:10 |
大气象
@ 王丁
web就用js配合实现吧。
支持(0)反对(0) http://pic.cnblogs.com/face/u38230.jpg
#15楼2012-06-12
18:39 |
llllboy
LZ 能给个具体思路吗?
支持(0)反对(0) http://pic.cnblogs.com/face/327120/20130211222920.png
#16楼2012-07-03
09:48 |
猛龍過江
继续努力!大气象!
支持(0)反对(0) http://pic.cnblogs.com/face/u291155.jpg?id=24095254
#17楼2013-03-11
15:11 |
山头青
继续努力!大气象!
支持(0)反对(0)
#18楼2013-12-23
14:51 |
sendreams
太老了,够难看的,都不管审美了?
支持(0)反对(0)
#19楼2014-04-15
11:35 |
必须好好学习.net
你好,我想问下,我是按着你的代码自己写了遍,只不过没有加图片,为什么父子节点第一列的数据都是居左,不是像你这样子节点的数据是在父节点之后的,不像你这种效果的。
支持(0)反对(0)
#20楼33677842016/2/27
15:28:57 2016-02-27 15:28 |
mmmm_222
有bug,双击可编辑列之后treelistview Please use OnBeforeLabelEdit(TreeListViewLabelEditEventArgs e)出现异常,请问是啥原因呢
支持(0)反对(0)
相关文章推荐
- SignalR实现web在线即时聊天(C#)
- C#制作、打包、签名、发布Activex全过程【转】
- C# Form内存回收
- 【C#设计模式-责任链模式】
- C# 动态显示曲线
- c#中开发ActiveX的学习笔记【转】
- C#中Monitor和Lock以及区别
- C# winform Listbox添加和删除items
- 分享C#中几个可用的类
- C#程序输出信息到调试窗口的几种方式
- C#中Timer使用及解决重入问题
- C#运算符之与,或,异或及移位运算
- C#面向对象设计的七大原则
- C#开发中怎么提升excel导出速度
- C#实现简单的汽车租赁系统
- C# 委托 delegate
- c#中取整,向上取,向下取
- C# 判断文件夹存在与否并创建文件夹
- C#中的invoke和begininvoke
- C# 获取windows特殊路径