实例介绍
【实例简介】
【实例截图】
【核心代码】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TreeListViewDemo
{
public partial class Form1 : Form
{
private void AddTreeViewNodes()
{
// 添加根节点
TreeNode tn = new TreeNode();
tn.Text = "金庸小说";
tn.ImageIndex = 0;
tn.SelectedImageIndex = 0;
tv.Nodes.Add((TreeNode)(tn.Clone()));
// 添加4个子节点
tn.Text = "射雕英雄传";
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
tv.Nodes[0].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "神雕侠侣";
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
tv.Nodes[0].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "天龙八部";
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
tv.Nodes[0].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "倚天屠龙记";
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
tv.Nodes[0].Nodes.Add((TreeNode)(tn.Clone()));
// 添加根节点
tn.Text = "古龙小说";
tn.ImageIndex = 0;
tn.SelectedImageIndex = 0;
tv.Nodes.Add((TreeNode)(tn.Clone()));
// 添加根节点
tn.Text = "黄易小说";
tn.ImageIndex = 0;
tn.SelectedImageIndex = 0;
tv.Nodes.Add((TreeNode)(tn.Clone()));
// 添加3个子节点
tn.Text = "大唐双龙传";
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
tv.Nodes[2].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "寻秦记";
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
tv.Nodes[2].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "第1章 时空机器";
tn.ImageIndex = 3;
tn.SelectedImageIndex = 4;
tv.Nodes[2].Nodes[1].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "第2章 墨子剑法";
tn.ImageIndex = 3;
tn.SelectedImageIndex = 4;
tv.Nodes[2].Nodes[1].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "第3章 初会秦皇";
tn.ImageIndex = 3;
tn.SelectedImageIndex = 4;
tv.Nodes[2].Nodes[1].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "第4章 一统天下";
tn.ImageIndex = 3;
tn.SelectedImageIndex = 4;
tv.Nodes[2].Nodes[1].Nodes.Add((TreeNode)(tn.Clone()));
tn.Text = "翻云覆雨";
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
tv.Nodes[2].Nodes.Add((TreeNode)(tn.Clone()));
}
public Form1()
{
InitializeComponent();
// 调用向树视图中添加节点的方法
AddTreeViewNodes();
}
private void contextMenuOfTv_Opening(object sender, CancelEventArgs e)
{
}
private void tv_AfterSelect(object sender, TreeViewEventArgs e)
{
// 在文本框中显示当前选择节点的完全路径
txtPath.Text = tv.SelectedNode.FullPath;
// 在列表视图中显示当前选择节点的所有子节点
lv.Clear(); // 首先清除列表视图的所有列和项
// 向列表视图中添加列,当前选择节点不同,列的标题
// 也不同
if (tv.SelectedNode.ImageIndex == 0)
{
lv.Columns.Add("书名", 160, HorizontalAlignment.Left);
lv.Columns.Add("页数", 60, HorizontalAlignment.Right);
lv.Columns.Add("价格", 60, HorizontalAlignment.Right);
}
else
{
lv.Columns.Add("标题", 160, HorizontalAlignment.Left);
lv.Columns.Add("字数", 60, HorizontalAlignment.Right);
lv.Columns.Add("页数", 60, HorizontalAlignment.Right);
}
int i = 300, j = 20;
int imgIndex = 0;
if (tv.SelectedNode.ImageIndex == 1)
imgIndex = 1;
// 向列表视图中添加项
foreach (TreeNode tn in tv.SelectedNode.Nodes)
{
ListViewItem lvi = new ListViewItem(tn.Text, imgIndex);
lvi.SubItems.Add(i.ToString());
lvi.SubItems.Add(j.ToString());
lv.Items.Add(lvi);
i = 100;
j = 10;
}
}
private void lv_SelectedIndexChanged(object sender, EventArgs e)
{
// 把当前项的标题附加到树视图当前选择节点的完全路径的
// 后面并显示在文本框中
if (lv.SelectedItems.Count > 0)
txtPath.Text = tv.SelectedNode.FullPath tv.PathSeparator lv.SelectedItems[0].Text;
}
private void miLargeIcon_Click(object sender, EventArgs e)
{
miLargeIcon.Checked = true;
miSmallIcon.Checked = false;
miList.Checked = false;
miDetail.Checked = false;
lv.View = System.Windows.Forms.View.LargeIcon;
}
private void miSmallIcon_Click(object sender, EventArgs e)
{
miLargeIcon.Checked = false;
miSmallIcon.Checked = true;
miList.Checked = false;
miDetail.Checked = false;
lv.View = System.Windows.Forms.View.SmallIcon;
}
private void miList_Click(object sender, EventArgs e)
{
miLargeIcon.Checked = false;
miSmallIcon.Checked = false;
miList.Checked = true;
miDetail.Checked = false;
lv.View = System.Windows.Forms.View.List;
}
private void miDetail_Click(object sender, EventArgs e)
{
miLargeIcon.Checked = false;
miSmallIcon.Checked = false;
miList.Checked = false;
miDetail.Checked = true;
lv.View = System.Windows.Forms.View.Details;
}
private void miNewNode_Click(object sender, EventArgs e)
{
TreeNode tn = new TreeNode("新建节点");
if (tv.SelectedNode.ImageIndex == 0)
{
tn.ImageIndex = 1;
tn.SelectedImageIndex = 2;
}
else
{
tn.ImageIndex = 3;
tn.SelectedImageIndex = 4;
}
tv.SelectedNode.Nodes.Add(tn);
}
private void miDeleteNode_Click(object sender, EventArgs e)
{
tv.SelectedNode.Remove();
}
private void miExpandAll_Click(object sender, EventArgs e)
{
tv.ExpandAll();
}
private void miCollapseAll_Click(object sender, EventArgs e)
{
tv.CollapseAll();
}
private void miChangeSep_Click(object sender, EventArgs e)
{
if (tv.PathSeparator == "\\")
tv.PathSeparator = "|";
else
tv.PathSeparator = "\\";
}
private void miShowPlusMinus_Click(object sender, EventArgs e)
{
miShowPlusMinus.Checked =! miShowPlusMinus.Checked;
tv.ShowPlusMinus = miShowPlusMinus.Checked;
}
private void miShowLine_Click(object sender, EventArgs e)
{
miShowLine.Checked =! miShowLine.Checked ;
tv.ShowLines = miShowLine.Checked;
}
}
}
好例子网口号:伸出你的我的手 — 分享!
网友评论
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


支持(0) 盖楼(回复)