比较简单的做法,增加一个子节点提示.然后开线程请求真实的子节点,完毕后替换提示节点。
代码如下
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication11
{
public partial class Form1 : Form
{
//用于控制线程的方法
public class ThreadStartInfo
{
public TreeNode node=null;
//模拟载入数据
public void LoadNode()
{
System.Threading.Thread.Sleep(5000);
string[] str = new string[] { "jinjazz", "csdn" ,"sina","google","yahoo","nba","fifa"};
this.AddNode(node, str);
}
delegate void dAddNode(TreeNode node, string[] str);
//添加节点
void AddNode(TreeNode node, string[] str)
{
if (this.node.TreeView.FindForm().InvokeRequired)
{
this.node.TreeView.FindForm().Invoke(new dAddNode(AddNode), new object[] { node, str });
}
else
{
node.Nodes.Clear();
foreach (string strNode in str)
{
node.Nodes.Add(strNode);
}
}
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//添加根节点
this.treeView1.Nodes.Add(new TreeNode("root"));
this.treeView1.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect);
}
void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Tag==null||e.Node.Tag.ToString() == "")
{
ThreadStartInfo s = new ThreadStartInfo();
s.node = e.Node;
//已经载入过的就不要载入了。
s.node.Tag = 1;
new System.Threading.Thread(new System.Threading.ThreadStart(s.LoadNode)).Start();
e.Node.Nodes.Add("正在载入..");
}
}
}
}
分享到:
相关推荐
winform保持TreeView节点展开和折叠的状态 只需调用两个方法即可非常方面
C# WinForm中拖拽TreeView节点
主要介绍了C#中TreeView节点的自定义绘制方法,实例展示了TreeView节点的操作技巧,需要的朋友可以参考下
C# 实现treeview节点的三种选择状态,相比微软提供的checkbox控件的两种选择状态,该实例多了子节点部分选中,父节点实现半选状态
这个winform下的树很简单,只包括了树的编辑、添加节点和删除节点功能,窗体右侧的ListView显示树节点下包含的信息(就是分类下的产品呵呵,不知道怎么表达了) 该树是为了答疑解惑CSDN上朋友的一些疑问专门写的一...
自己写的代码示例,保证可用,入股有什么问题
c# treeview 添加节点后面button触发事件
自定义的美化TreeView源码和对应demo,样式好看,对初学者是很好的学习资料,然后也可用于项目中
Winform TreeView 失去焦点后选中的节点风格设置。
在一个前辈的代码基础上修改的,他的下载回来后,发现在按shift多选时会出错,故在其基础上修改。
实现TreeView TreeNode递归添加文件夹 可以的话 给我好评论 谢谢啦
适合C# wingform窗体学习者学习,借鉴
C#treeview的添加节点,查询节点,递归调用和显示节点等齐全的操作都有,以及利用制作了一个类似表格的横向树的treeview
一个实例工程,包括如何实现TreeView多选功能,如何绘制TreeNode底板、改变节点样式、绘制字体,如何在TreeNode后面添加Button按钮。
Treeview节点拖拽Dragdrop带Image dragging动画效果,Treeview节点拖拽带Image dragging动画效果
觉得树控件的背景白色太单调了?这个类可以非常方便简单的帮您的树控件加上背景图片,让您的界面更加美观:)
TreeView 增删节点 并 保存 C#;Winform版本的 ;实现TreeView 节点增删改
C#Tree View右键菜单,树节点编辑,增加节点,删除节点,复制粘贴节点
本人借鉴了wpf treeview控件绑定数据的例子,在winform中实现了根据节点信息生成树的功能,希望能给别人的开发带来启示,欢迎批评指正。
一个WinForm的TreeView,某node的CheckBox初始状态为false,当双击这个node的checkbox时,会出现很奇怪的情况: 第一次双击checkbox,checkbox显示的状态会切换两次状态,unchecked-> checked-> unchecked,而...