未能创建 UserControl "Path.UserControl1"
错误信息是"未将对象引用设置到对象的实例。"--------------------------------------
UserControl.cs
-------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;namespace Path
{
    public partial class UserControl1 :UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
            InitTree();
        }
        public void InitTree()
        {
            string[] LogicDrives = System.IO.Directory.GetLogicalDrives();
            TreeNode[] cRoot = new TreeNode[LogicDrives.Length];
            for (int i = 0; i < LogicDrives.Length; i++)
            {
                TreeNode drivesNode = new TreeNode(LogicDrives[i]);
                treeView1.Nodes.Add(drivesNode);
                if (LogicDrives[i] != "A:\\" && LogicDrives[i] != "B:\\")
                {
                    getSubNode(drivesNode, true);
                }
            }
        }
        private void getSubNode(TreeNode PathName, bool isEnd)
        {
            if (!isEnd)
            {
                return; //exit this
            }
            else
            {
                DirectoryInfo curDir = new DirectoryInfo(PathName.FullPath);
                DirectoryInfo[] subDir = null;
                try
                {
                    subDir = curDir.GetDirectories();
                }
                catch
                {
                }
                foreach (DirectoryInfo d in subDir)
                {
                    TreeNode curNode = new TreeNode(d.Name);
                    PathName.Nodes.Add(curNode);
                    getSubNode(curNode, false);
                }
            }
        }
        private void treeView1_AfterExpand(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            try
            {
                foreach (TreeNode tn in e.Node.Nodes)
                {
                    if (!tn.IsExpanded)
                    {
                        getSubNode(tn, true);
                    }
                }
            }
            catch { ;}
        }        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            listView1.Items.Clear();
            DirectoryInfo selDir = new DirectoryInfo(e.Node.FullPath);
            DirectoryInfo[] listDir = null;
            FileInfo[] listFile = null;
            try
            {
                listDir = selDir.GetDirectories();
                listFile = selDir.GetFiles();
            }
            catch { }
            foreach (DirectoryInfo d in listDir)
            {
                listView1.Items.Add(d.Name, 6);
            }
            foreach (FileInfo d in listFile)
            {
                listView1.Items.Add(d.Name);
            }
        }
    }
}

解决方案 »

  1.   

    未能创建   UserControl   "Path.UserControl1 " 
    错误信息是 "未将对象引用设置到对象的实例。 " 
    ============>类似这种错误一般都是说你创建的对象是null,但是你在后面又用了UserControl的方法,属性等。
    楼主,你就给出这么一个cs文件,别人是找不到错误的。应该把关键的代码贴出来。
      

  2.   

    提示出错的是
    getSubNode(TreeNode   PathName,   bool   isEnd) 
    中的
    foreach   (DirectoryInfo   d   in   subDir) d值为空