社区
.NET技术其他语言
帖子详情
c# winform 程序TreeView
lsgy2008
2010-03-27 06:01:49
本人刚接触winform对TreeView 不熟悉。。谁能给源码介绍TreeView的用法。。增、删、改和右键功能。。
要求要在树的本身上进行操作。。
...全文
95
3
打赏
收藏
c# winform 程序TreeView
本人刚接触winform对TreeView 不熟悉。。谁能给源码介绍TreeView的用法。。增、删、改和右键功能。。 要求要在树的本身上进行操作。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
`控件是一个常用且功能强大的组件,它用于以树形结构展示数据。在本教程中,我们将探讨如何利用`
TreeView
`控件与数据库进行绑定,以便用户能够直观地浏览和操作层次化的数据。 首先,...
C#
WinForm
窗体
treeview
用法例子
在
C#
WinForm
开发中,
TreeView
控件是一个非常常用且功能强大的组件,它允许用户以树状结构展示数据。这个控件通常用于显示文件系统、应用
程序
的层级结构或者自定义的分类信息。以下是对"
C#
WinForm
窗体
treeview
用法...
好看的
Winform
.
TreeView
通过`WindowsFormsApplication9`这个文件,我们可以预见到这应该是一个包含示例
程序
的项目工程,其中包含了使用这个美化`
TreeView
`的实例代码。初学者可以通过查看和运行这个示例来学习如何在自己的项目中应用这些...
C#
winform
TreeView
中关于checkbox选择的完美类
在
C#
WinForm
开发中,`
TreeView
`控件是一个常用组件,用于展示层次结构的数据。在某些场景下,我们可能需要在`
TreeView
`节点上添加复选框(Checkbox),以便用户可以多选节点。本文将深入讲解如何实现`
TreeView
`控件...
C#
winform
TreeView
编辑简单示例
这个
winform
下的树很简单,只包括了树的编辑、添加节点和删除节点功能,窗体右侧的ListView显示树节点下包含的信息(就是分类下的产品呵呵,不知道怎么表达了) 该树是为了答疑解惑CSDN上朋友的一些疑问专门写的一...
.NET技术其他语言
1,979
社区成员
12,448
社区内容
发帖
与我相关
我的任务
.NET技术其他语言
.NET技术 其他语言讨论
复制链接
扫一扫
分享
社区描述
.NET技术 其他语言讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章