private void TreeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) 

foreach (TreeNode tn in e.Node.Nodes) 

if (Directory.Exists(tn.Name)) 

DirectoryInfo dirinfo = new DirectoryInfo(tn.Name); 
tn.Nodes.Clear(); 
try 

foreach (DirectoryInfo subdir in dirinfo.GetDirectories()) 

TreeNode subnode = new TreeNode(subdir.Name); 
subnode.Name = subdir.FullName; 
subnode.ImageIndex = 2; 
subnode.SelectedImageIndex = 2; 
tn.Nodes.Add(subnode); 


catch 
{ } 



整个代码(主要一句foreach)看来都是在内存中进行的吗,为什么我们还能在 屏幕中(treeview) 看到产生新的实例呢???请给出详解。