SharpDevelop开发教程(一)

本文聚焦SharpDevelop插件和核心服务开发,不涉及基本概念与代码分析。介绍了SD中Pad(面板)的特点,给出新建类库项目、添加引用、拷贝文件等开发Pad的实战流程,还提及指定图标、要点分析等内容,如制作Pad要继承AbstractPadContent等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前 言

最近在网上有很多关于SharpDevelop代码分析的文章,但对SharpDevelop插件和核心服务开发的文章确很少。这份文档我想应该会对大家有帮助。为了不浪费大家的时间和网络流量,我不打算给大家讲SharpDevelop的基本概念和内部的代码分析。各位可以参阅清华大学出版的一本红皮书《C#软件项目开发全程剖析-全面透视SharpDevelop软件的开发内幕》(我真的不是清华的书托J),虽然翻译的一般、但有总比没有的好,各位也可以参阅博客园(www.cnblogs.com)另外几位的文章,其中古月春秋的《SharpDevelop代码分析》系列是个人认为写的很不错的,很见作者的功底。(题外话:古月春秋的文章中提到了对codon的翻译的问题,英文中电子、中子、光子、质子分别译为electron neutronphotonproton,此处大家会对-on后缀发出会心的微笑。Codon翻译成“代码子”意思应该是很到位的,清华那本书中的“密码子”就逊色些了,但也还将就。)

这文章大家可以任意阅读转载,但请保持文档的完整转载。由于在工作的中午休息期间所写,十分匆忙,难免有勿,请各位斧正。

为了方便起见,我在文章中都把SharpDevelop简称为SD

<?xml:namespace prefix = o />

 


第一章    Pad

                     Pad(面板)就是SD中的停靠窗口。有这些特点:Pad不能关闭,但可以隐藏或显示。每种类型的Pad只能打开一个,不能在运行时添加,标题唯一。可以显示图标,由SD中的布局管理器负责管理。通常不显示文件内容,而是辅助用户完成任务。

下面进入我们的实战流程,先新建一个类库型的项目,命名为CSPadDemoPlug,把Class1.cs改名为Main.cs,修改为如下内容:

 

 1 None.gif using  System;
 2 None.gif using  System.Drawing;
 3 None.gif using  System.Windows.Forms;
 4 None.gif
 5 None.gif using  ICSharpCode.SharpDevelop.Gui;
 6 None.gif
 7 None.gif namespace  SDPadDemoPlug
 8 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 9InBlock.gif    public class SDPad : AbstractPadContent
10ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
11InBlock.gif        SDPadControl control=new SDPadControl();
12InBlock.gif        public SDPad(): base("TestPanel")
13ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
14ExpandedSubBlockEnd.gif        }

15InBlock.gif
16InBlock.gif        public override Control Control 
17ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
18InBlock.gif            get 
19ExpandedSubBlockStart.gifContractedSubBlock.gif            dot.gif{
20InBlock.gif                return this.control;
21ExpandedSubBlockEnd.gif            }

22ExpandedSubBlockEnd.gif        }
        
23InBlock.gif
24ExpandedSubBlockEnd.gif    }

25ExpandedBlockEnd.gif}

26 None.gif

记得要在项目中加入SD中的ICSharpCode.Core.dllSharpDevelop.Base.dll引用。这两个文件在SD下的Bin目录下。写SD的插件需要包含。

 

     在项目中添加新建项 à 用户控件。改名为 CSPadControl 各位可以在 CSPadControl 上添加一些相关的内容。

 

     在工程中添加一个 DemoPlug.addin 文件,这是插件配置文件,很重要,内容如下:

 

None.gif < AddIn  name         = "SharpDevelop Plug Demo"
None.gif       author      
= "SongYuanWu"
None.gif       copyright   
= "GPL"
None.gif       url         
= "http://www.cnblogs.com/CBuilder"
None.gif       description 
= "SharpDevelop "
None.gif       version     
= "1.0.0" >
None.gif    
None.gif    
< Runtime >
None.gif        
< Import  assembly ="SDPadDemo.dll" />
None.gif    
</ Runtime >
None.gif
None.gif    
< Extension  path  = "/SharpDevelop/Workbench/Views" >
None.gif        
< Class  id     = "SDPadDemo"  
None.gif              class 
= "SDPadDemoPlug.SDPad" />
None.gif    
</ Extension >
None.gif
</ AddIn > None.gif
None.gif

       OK!把编译后的SDPadDemo.dllDemoPlug.addin文件拷贝到SD\AddIns\目录下,运行SD就可以看到我们创建的Pad了(如下图),同时在SD的菜单查看工具下也出现了TestPanel菜单项。
Pad.JPG

<?xml:namespace prefix = v />

如果需要指定pad的图标时,可以改更改base("TestPanel") base("TestPanel", "IconID")

InconID为图标的资源号,作为演示你可以用Class的图标“Icons.16x16.Class”来替代。

 

要点分析:

       制作Pad的时候要从AbstractPadContent继承。所以要using ICSharpCode.SharpDevelop.Gui;

     .addin文件中不要用中文,否则会出现错误,那如果需要用到中文怎么办呢?可以使用SD的字符串分析服务,把字符串改为如下形式${res:StringID},StringIDSD中的资源IDSDResourceService的使用,我将会在后面的内容中讲述。

转载于:https://www.cnblogs.com/CBuilder/archive/2005/08/06/209046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值