using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
//用于控制線(xiàn)程的方法
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);
//添加節點(diǎn)
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)
{
//添加根節點(diǎn)
this.treeView1.Nodes.Add(new TreeNode("root"));
this.treeView1.AfterSelect+=new TreeViewEventHandler(treeView1_AfterSelect);
}
private void treeView1_AfterSelect(object sender,TreeViewEventArgs e)
{
if(e.Node.Tag==null||e.Node.Tag.ToString()=="")
{
ThreadStartInfo s=new ThreadStartInfo();
s.node=e.Node;
//已經(jīng)載入過(guò)的就不要載入了。
s.node.Tag=1;
new System.Threading.Thread(new System.Threading.ThreadStart(s.LoadNode)).Start();
e.Node.Nodes.Add("正在載入..");
}
}
private void Form1_Load_1(object sender, EventArgs e)
{
this.treeView1.Nodes.Add(new TreeNode("root"));
this.treeView1.AfterSelect += new TreeViewEventHandler(treeView1_AfterSelect);
}
}
}
聯(lián)系客服