自从SharpDevelop 源码分析的系列文章发出来之后,很多朋友给了不错的评价,在这里先感谢各位朋友的鼓励。另外,评论中有位朋友想看看我在文章中提到的AddInTreeView插件,其实这个是个很简单的小东西,因此单独发在这里了。(好像没有找到那里能上传文件,因此直接贴代码了)
AddinTreeViewCommand.cs

/**//*
*CreatedbySharpDevelop.
*User:Administrator
*Date:2004-10-4
*Time:4:12
*
*TochangethistemplateuseTools|Options|Coding|EditStandardHeaders.
*/
usingSystem;
usingSystem.Windows.Forms;
usingSystem.CodeDom.Compiler;

usingICSharpCode.SharpDevelop.Gui;
usingICSharpCode.SharpDevelop.Gui.Pads;
usingICSharpCode.Core.AddIns;
usingICSharpCode.Core.AddIns.Codons;
usingICSharpCode.SharpDevelop.Services;

namespaceAddins.AddinTreeView


{

/**////<summary>
///DescriptionofMyClass.
///</summary>
publicclassAddinTreeViewCommand:AbstractMenuCommand


{
publicoverridevoidRun()


{
using(AddinTreeViewContentviewContent=newAddinTreeViewContent())


{
WorkbenchSingleton.Workbench.ShowView(viewContent);
}
}
}

publicclassAddinTreeViewContent:AbstractViewContent


{
AddinTreeViewControlviewControl=newAddinTreeViewControl();

publicoverrideControlControl


{
get


{
returnviewControl;
}
}

publicoverrideboolIsDirty


{
get


{
returnfalse;
}
set


{
}
}

IWorkbenchWindowworkbenchWindow;
publicoverrideIWorkbenchWindowWorkbenchWindow


{
get


{
returnworkbenchWindow;
}
set


{
workbenchWindow=value;
workbenchWindow.Title="AddInTreeView";
}
}

publicAddinTreeViewContent()


{
TitleName="AddinTreeView";
}


publicoverrideboolIsViewOnly


{
get


{
returntrue;
}
}

publicvoidSaveFile()
{}

publicvoidUndo()
{}

publicvoidRedo()
{}

publicoverridevoidSave()
{}

publicoverridevoidSave(stringfilename)
{}
publicoverridevoidLoad(stringfilename)


{
}

publicoverridestringTabPageText


{
get


{
return"AddInTree";
}
}

}
}
AddinTreeViewControl.cs
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Drawing;
usingSystem.Data;
usingSystem.Windows.Forms;

usingICSharpCode.SharpDevelop.Gui;
usingICSharpCode.Core.AddIns;
usingICSharpCode.Core.AddIns.Codons;

namespaceAddins.AddinTreeView


{

/**////<summary>
///AddinTreeViewControl的摘要说明。
///</summary>
publicclassAddinTreeViewControl:System.Windows.Forms.UserControl


{
privateSystem.Windows.Forms.ColumnHeaderchName;
privateSystem.Windows.Forms.ListViewlvAddin;
privateSystem.Windows.Forms.ColumnHeaderchInfo;
privateSystem.Windows.Forms.CheckBoxcbShowAddinInfo;
privateSystem.Windows.Forms.Splittersplitter2;
privateSystem.Windows.Forms.ListViewlvDebug;
privateSystem.Windows.Forms.Splittersplitter1;
privateSystem.Windows.Forms.TreeViewtvAddin;
privateSystem.Windows.Forms.ColumnHeaderchValue;

/**////<summary>
///必需的设计器变量。
///</summary>
privateSystem.ComponentModel.Containercomponents=null;

publicAddinTreeViewControl()


{
//该调用是Windows.Forms窗体设计器所必需的。
InitializeComponent();

//TODO:在InitializeComponent调用后添加任何初始化
InitAddinTreeView();
}


/**////<summary>
///清理所有正在使用的资源。
///</summary>
protectedoverridevoidDispose(booldisposing)


{
if(disposing)


{
if(components!=null)


{
components.Dispose();
}
}
base.Dispose(disposing);
}


组件设计器生成的代码#region组件设计器生成的代码

/**////<summary>
///设计器支持所需的方法-不要使用代码编辑器
///修改此方法的内容。
///</summary>
privatevoidInitializeComponent()


{
this.chName=newSystem.Windows.Forms.ColumnHeader();
this.lvAddin=newSystem.Windows.Forms.ListView();
this.chValue=newSystem.Windows.Forms.ColumnHeader();
this.chInfo=newSystem.Windows.Forms.ColumnHeader();
this.cbShowAddinInfo=newSystem.Windows.Forms.CheckBox();
this.splitter2=newSystem.Windows.Forms.Splitter();
this.lvDebug=newSystem.Windows.Forms.ListView();
this.splitter1=newSystem.Windows.Forms.Splitter();
this.tvAddin=newSystem.Windows.Forms.TreeView();
this.SuspendLayout();
//
//chName
//
this.chName.Text="属性";
this.chName.Width=217;
//
//lvAddin
//

this.lvAddin.Columns.AddRange(newSystem.Windows.Forms.ColumnHeader[]
{
this.chName,
this.chValue});
this.lvAddin.Dock=System.Windows.Forms.DockStyle.Fill;
this.lvAddin.FullRowSelect=true;
this.lvAddin.GridLines=true;
this.lvAddin.HoverSelection=true;
this.lvAddin.Location=newSystem.Drawing.Point(443,24);
this.lvAddin.MultiSelect=false;
this.lvAddin.Name="lvAddin";
this.lvAddin.Size=newSystem.Drawing.Size(661,509);
this.lvAddin.TabIndex=13;
this.lvAddin.View=System.Windows.Forms.View.Details;
//
//chValue
//
AddinTreeViewCommand.cs

/**//*
*CreatedbySharpDevelop.
*User:Administrator
*Date:2004-10-4
*Time:4:12
*
*TochangethistemplateuseTools|Options|Coding|EditStandardHeaders.
*/
usingSystem;
usingSystem.Windows.Forms;
usingSystem.CodeDom.Compiler;
usingICSharpCode.SharpDevelop.Gui;
usingICSharpCode.SharpDevelop.Gui.Pads;
usingICSharpCode.Core.AddIns;
usingICSharpCode.Core.AddIns.Codons;
usingICSharpCode.SharpDevelop.Services;
namespaceAddins.AddinTreeView

{
/**////<summary>
///DescriptionofMyClass.
///</summary>
publicclassAddinTreeViewCommand:AbstractMenuCommand

{
publicoverridevoidRun()

{
using(AddinTreeViewContentviewContent=newAddinTreeViewContent())

{
WorkbenchSingleton.Workbench.ShowView(viewContent);
}
}
}
publicclassAddinTreeViewContent:AbstractViewContent

{
AddinTreeViewControlviewControl=newAddinTreeViewControl();
publicoverrideControlControl

{
get

{
returnviewControl;
}
}
publicoverrideboolIsDirty

{
get

{
returnfalse;
}
set

{
}
}
IWorkbenchWindowworkbenchWindow;
publicoverrideIWorkbenchWindowWorkbenchWindow

{
get

{
returnworkbenchWindow;
}
set

{
workbenchWindow=value;
workbenchWindow.Title="AddInTreeView";
}
}
publicAddinTreeViewContent()

{
TitleName="AddinTreeView";
}

publicoverrideboolIsViewOnly

{
get

{
returntrue;
}
}
publicvoidSaveFile()
{}
publicvoidUndo()
{}
publicvoidRedo()
{}
publicoverridevoidSave()
{}
publicoverridevoidSave(stringfilename)
{}
publicoverridevoidLoad(stringfilename)

{
}
publicoverridestringTabPageText

{
get

{
return"AddInTree";
}
}
}
}
AddinTreeViewControl.cs
usingSystem;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Drawing;
usingSystem.Data;
usingSystem.Windows.Forms;
usingICSharpCode.SharpDevelop.Gui;
usingICSharpCode.Core.AddIns;
usingICSharpCode.Core.AddIns.Codons;
namespaceAddins.AddinTreeView

{
/**////<summary>
///AddinTreeViewControl的摘要说明。
///</summary>
publicclassAddinTreeViewControl:System.Windows.Forms.UserControl

{
privateSystem.Windows.Forms.ColumnHeaderchName;
privateSystem.Windows.Forms.ListViewlvAddin;
privateSystem.Windows.Forms.ColumnHeaderchInfo;
privateSystem.Windows.Forms.CheckBoxcbShowAddinInfo;
privateSystem.Windows.Forms.Splittersplitter2;
privateSystem.Windows.Forms.ListViewlvDebug;
privateSystem.Windows.Forms.Splittersplitter1;
privateSystem.Windows.Forms.TreeViewtvAddin;
privateSystem.Windows.Forms.ColumnHeaderchValue;
/**////<summary>
///必需的设计器变量。
///</summary>
privateSystem.ComponentModel.Containercomponents=null;
publicAddinTreeViewControl()

{
//该调用是Windows.Forms窗体设计器所必需的。
InitializeComponent();
//TODO:在InitializeComponent调用后添加任何初始化
InitAddinTreeView();
}

/**////<summary>
///清理所有正在使用的资源。
///</summary>
protectedoverridevoidDispose(booldisposing)

{
if(disposing)

{
if(components!=null)

{
components.Dispose();
}
}
base.Dispose(disposing);
}

组件设计器生成的代码#region组件设计器生成的代码
/**////<summary>
///设计器支持所需的方法-不要使用代码编辑器
///修改此方法的内容。
///</summary>
privatevoidInitializeComponent()

{
this.chName=newSystem.Windows.Forms.ColumnHeader();
this.lvAddin=newSystem.Windows.Forms.ListView();
this.chValue=newSystem.Windows.Forms.ColumnHeader();
this.chInfo=newSystem.Windows.Forms.ColumnHeader();
this.cbShowAddinInfo=newSystem.Windows.Forms.CheckBox();
this.splitter2=newSystem.Windows.Forms.Splitter();
this.lvDebug=newSystem.Windows.Forms.ListView();
this.splitter1=newSystem.Windows.Forms.Splitter();
this.tvAddin=newSystem.Windows.Forms.TreeView();
this.SuspendLayout();
//
//chName
//
this.chName.Text="属性";
this.chName.Width=217;
//
//lvAddin
//
this.lvAddin.Columns.AddRange(newSystem.Windows.Forms.ColumnHeader[]
{
this.chName,
this.chValue});
this.lvAddin.Dock=System.Windows.Forms.DockStyle.Fill;
this.lvAddin.FullRowSelect=true;
this.lvAddin.GridLines=true;
this.lvAddin.HoverSelection=true;
this.lvAddin.Location=newSystem.Drawing.Point(443,24);
this.lvAddin.MultiSelect=false;
this.lvAddin.Name="lvAddin";
this.lvAddin.Size=newSystem.Drawing.Size(661,509);
this.lvAddin.TabIndex=13;
this.lvAddin.View=System.Windows.Forms.View.Details;
//
//chValue
//
SharpDevelop AddInTreeView 插件解析
本文分享了一个简单的SharpDevelop插件AddInTreeView的源代码,该插件能够展示加载的Add-In信息,包括名称、属性及调试信息等。
448

被折叠的 条评论
为什么被折叠?



