社区
.NET技术其他语言
帖子详情
c# winform 程序TreeView
lsgy2008
2010-03-27 06:01:49
本人刚接触winform对TreeView 不熟悉。。谁能给源码介绍TreeView的用法。。增、删、改和右键功能。。
要求要在树的本身上进行操作。。
...全文
67
3
打赏
收藏
c# winform 程序TreeView
本人刚接触winform对TreeView 不熟悉。。谁能给源码介绍TreeView的用法。。增、删、改和右键功能。。 要求要在树的本身上进行操作。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
初吻给了烟
2010-04-12
打赏
举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace XMLOperate
{
public partial class Form1 : Form
{
//声明XML文档对象模型
XmlDocument document;
//选中的节点
TreeNode selectNode;
public Form1()
{
InitializeComponent();
//实例化文档模型
this.document = new XmlDocument();
}
//退出
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
//添加根元素还是子元素
bool isPater = true;
//添加
private void btnAppend_Click(object sender, EventArgs e)
{
try
{
//没果没有根元素
if (isPater)
{
string root = this.txtElement.Text.Trim();
this.trvXml.Nodes.Add(root);
this.document.LoadXml("<" + root + "></" + root + ">");
this.isPater = false;
this.btnInsert.Enabled = true;
this.btnRemove.Enabled = true;
this.btnReplace.Enabled = true;
this.btnSave.Enabled = true;
this.trvXml.SelectedNode = this.trvXml.Nodes[0];
this.txtElement.Clear();
}
else
{
if (this.trvXml.SelectedNode != null)
{
string element = this.txtElement.Text.Trim();
this.selectNode.Nodes.Add(element);
XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text);
int nodeCount = nodelist.Count;
//循环添加可能有多个元素
for (int i = 0; i < nodeCount; i++)
{
XmlNode node = this.document.CreateElement(element);
nodelist.Item(i).AppendChild(node);
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//根据选中节点位置来更新树信息
private void trvXml_AfterSelect(object sender, TreeViewEventArgs e)
{
this.selectNode = e.Node;
}
//保存
private void btnSave_Click(object sender, EventArgs e)
{
//确定是否要保存
if (this.saveFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
string filePath = this.saveFileDialog1.FileName;
this.document.Save(filePath);
MessageBox.Show("保存成功");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
//插入
private void btnInsert_Click(object sender, EventArgs e)
{
try
{
if (this.trvXml.SelectedNode != null)
{
//找到当前选中节点的索引
string element = this.txtElement.Text.Trim();
this.selectNode.Parent.Nodes.Insert(this.selectNode.Index + 1, element);
XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text);
int nodeCount = nodelist.Count;
//循环添加可能有多个元素
for (int i = 0; i < nodeCount; i++)
{
XmlNode node = this.document.CreateElement(element);
//将指定节点插入选中节点之后
nodelist.Item(i).ParentNode.InsertAfter(node, nodelist.Item(i));
}
this.txtElement.Clear();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//替换
private void btnReplace_Click(object sender, EventArgs e)
{
try
{
//找到当前选中节点的索引
string element = this.txtElement.Text.Trim();
//先添加进去再删除它
this.selectNode.Parent.Nodes.Insert(this.selectNode.Index,element);
this.trvXml.Nodes.Remove(this.selectNode);
XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text);
int nodeCount = nodelist.Count;
//循环添加可能有多个元素
for (int i = 0; i < nodeCount; i++)
{
XmlNode node = this.document.CreateElement(element);
//替换节点
nodelist.Item(i).ParentNode.RemoveChild(nodelist.Item(i));
nodelist.Item(i).ParentNode.InsertAfter(node, nodelist.Item(i));
}
this.txtElement.Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//删除
private void btnRemove_Click(object sender, EventArgs e)
{
try
{
//如果全删除全完了,则需要重新添加根元素
if (this.trvXml.Nodes.Count < 0)
{
this.isPater = true;
}
this.trvXml.Nodes.Remove(this.selectNode);
XmlNodeList nodelist = this.document.GetElementsByTagName(this.selectNode.Text);
int nodeCount = nodelist.Count;
//循环添加可能有多个元素
for (int i = 0; i < nodeCount; i++)
{
nodelist.Item(i).ParentNode.RemoveChild(nodelist.Item(i));
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
初吻给了烟
2010-04-12
打赏
举报
回复
我有个例子,需要联系我吧 QQ 88051668
it521
2010-04-09
打赏
举报
回复
http://www.ltesting.net/AutoTest/Others/200612/1360.htm
TreeView使用笔记
C#
WinForm
treeview
经典用法和排序
C#
WinForm
treeview
经典用法和排序
C#
WinForm
treeview
经典用法和排序
C#
winform
TreeView
编辑简单示例
这个
winform
下的树很简单,只包括了树的编辑、添加节点和删除节点功能,窗体右侧的ListView显示树节点下包含的信息(就是分类下的产品呵呵,不知道怎么表达了) 该树是为了答疑解惑CSDN上朋友的一些疑问专门写的一...
C#
WinForm
中拖拽
TreeView
节点
C#
WinForm
中拖拽
TreeView
节点
C#
winform
treeView
控件的使用绑定数据库
C#
winform
treeView
控件的使用
treeView
1_BeforeExpand
treeView
绑定数据库
C#
winform
TreeView
递归文件夹
C#
winform
TreeView
递归文件夹
.NET技术其他语言
1,978
社区成员
12,450
社区内容
发帖
与我相关
我的任务
.NET技术其他语言
.NET技术 其他语言讨论
复制链接
扫一扫
分享
社区描述
.NET技术 其他语言讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章