C#继承Treeview控件的自定义控件 求救!!!

Blue_Genie 2011-06-29 02:45:26

class FolderTree:System.Windows.Forms.TreeView,ISupportInitialize
{
string _rootFolder = "";
bool _showFiles = true;
bool _inInit = false;
public FolderTree()
{
}
[Category("Behavior"), Description("预发布的根目录树"), DefaultValue("c:\\")]
public string RootFolder
{
get { return _rootFolder; }
set {
_rootFolder = value;
if(!_inInit)
InitializeTree();
}
}

[Category("Behavior"),
Description("是否显示文件."),
DefaultValue(true)]
public bool ShowFiles
{
get { return _showFiles; }
set { _showFiles = value; }
}

[Browsable(false)]
public string SelectedFolder
{
get
{
if (this.SelectedNode is FolderNode)
return ((FolderNode)this.SelectedNode).FolderPath;

return "";
}
}

private void InitializeTree()
{
if (!this.DesignMode)
{
FolderNode rootNode = new FolderNode(_rootFolder);
LoadTree(rootNode);
this.Nodes.Clear();
this.Nodes.Add(rootNode);
}
}

private void LoadTree(FolderNode folder)
{

string[] dirs = Directory.GetDirectories(folder.FolderPath);
foreach (string dir in dirs)
{
FolderNode tmpfolder = new FolderNode(dir);
folder.Nodes.Add(tmpfolder);
LoadTree(tmpfolder);
}
if (_showFiles)
{

string[] files = Directory.GetFiles(folder.FolderPath);
foreach (string file in files)
{
FileNode fnode = new FileNode(file);
folder.Nodes.Add(fnode);
}

}
}

public void BeginInit()
{
_inInit = true;
}

public void EndInit()
{
if (_rootFolder != "")
{
InitializeTree();
}
_inInit = false;
}

private void InitializeComponent()
{
this.SuspendLayout();
//
// FolderTree
//
this.LineColor = System.Drawing.Color.Black;
this.ResumeLayout(false);

}

}我把这个编译后 为什么不能在工具箱中添加添加报错:FolederTree.dll没有可放置工具箱上的组件
这个怎么解决 是不是我在这个FoldeerTree设计视图中要不要添加控件什么的,像用户控件一样!!
...全文
304 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerwing 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 isjoe 的回复:]
C# code

class FolderTree:System.Windows.Forms.TreeView,ISupportInitialize
你的类是内部使用,加个public
[/Quote]
估计是.
Blue_Genie 2011-06-29
  • 打赏
  • 举报
回复
谢谢 太感谢你了
isjoe 2011-06-29
  • 打赏
  • 举报
回复

class FolderTree:System.Windows.Forms.TreeView,ISupportInitialize
你的类是内部使用,加个public

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧