前 言

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

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

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

<?xml:namespace prefix = o />

第一章    Pad

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

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

 1using System;
 2using System.Drawing;
 3using System.Windows.Forms;
 4
 5using ICSharpCode.SharpDevelop.Gui;
 6
 7namespace SDPadDemoPlug
 8{
 9    public class SDPad : AbstractPadContent
10    {
11        SDPadControl control=new SDPadControl();
12        public SDPad(): base("TestPanel")
13        {
14        }
15
16        public override Control Control 
17        {
18            get 
19            {
20                return this.control;
21            }
22        }        
23
24    }
25}
26

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

在项目中添加新建项à用户控件。改名为CSPadControl。各位可以在CSPadControl上添加一些相关的内容。
     在工程中添加一个DemoPlug.addin文件,这是插件配置文件,很重要,内容如下:

<AddIn name        = "SharpDevelop Plug Demo"
       author      = "SongYuanWu"
       copyright   = "GPL"
       url         = "http://www.cnblogs.com/CBuilder"
       description = "SharpDevelop "
       version     = "1.0.0">
    
    <Runtime>
        <Import assembly="SDPadDemo.dll"/>
    </Runtime>

    <Extension path = "/SharpDevelop/Workbench/Views">
        <Class id    = "SDPadDemo" 
              class = "SDPadDemoPlug.SDPad"/>
    </Extension>
</AddIn>

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

<?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},StringID是SD中的资源ID,SD的ResourceService的使用,我将会在后面的内容中讲述。

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

SharpDevelop开发教程(一)相关推荐

  1. 【转载】SharpDevelop开发教程

    [原文地址]http://www.cnblogs.com/cbuilder/archive/2005/08/06/209046.html 前 言 最近在网上有很多关于SharpDevelop代码分析的 ...

  2. Android WiFi开发教程(三)——WiFi热点数据传输

    在上一篇文章中介绍了WiFi的搜索和连接,如果你还没阅读过,建议先阅读上一篇Android WiFi开发教程(二)--WiFi的搜索和连接.本篇接着简单介绍手机上如何通过WiFi热点进行数据传输. 跟 ...

  3. Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...

    <Android项目驱动式开发教程>第一章开发入门 1.4 项目框架分析 4 android:versionName="1.0" > 5 8 第9行代码andro ...

  4. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程--开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

  5. 做了一个系列的Android开发教程列表

    做了一个系列的Android开发教程列表.花了半天多的专题 里面包含了 4个系列的教程. 也包含了很多Android开发资料. 喜欢的人可以收藏哦:http://dev.apkbus.com/

  6. react开发教程(十)redux结合react

    描述 Redux 和 React 之间没有关系.Redux 可以搭配 React.Angular 甚至纯 JS.但是 Redux 还是比较适合和 React 搭配的,因为 React 允许你以 sta ...

  7. boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转

    一:什么是st_asio_wrapper 它是一个c/s网络编程框架,基于对boost.asio的包装(最低在boost-1.49.0上调试过),目的是快速的构建一个c/s系统: 二:st_asio_ ...

  8. 《C# WinForM 实践开发教程》案例×××(2)

    <C# WinForM 实践开发教程>案例×××(2): 由于上传限制,必须分卷压缩,请依次下载后解压缩.共有20个文件,合计71.3M. 请耐心下载哦^o^ 转载于:https://bl ...

  9. C#开发教程初级-第一天-hello Word 控制台编程

    为什么80%的码农都做不了架构师?>>>    C#开发教程第一天,hello word的编程! using System; using System.Collections.Gen ...

最新文章

  1. mysql压缩表语句_MYSQL静态表、动态表、压缩表总结
  2. 输出联系变化的数字seq
  3. 阿里云docker hub
  4. python设置一个初始为0的计数器_python中统计计数的几种方法
  5. Python测试开发django3.视图和URL配置
  6. 为什么同样是200M宽带,移动可以不要钱,联通却要1000多?
  7. DateTime 操作详解
  8. 大学英语综合教程四 Unit 5 课文内容英译中 中英翻译
  9. 现场总线课程设计——IIC总线
  10. 区块链马拉松|Blockathon(2018)上海站开放报名(HiBlock)
  11. 2020最新天猫双十一自动获取喵币
  12. OUTLOOK无法打开
  13. 悲催呀,辞职后,竟然找不到工作了
  14. Kivy App开发之页面背景设置
  15. java控制台实现的简易计算器,实现加减乘除
  16. 原生JS-实现无限图片轮播
  17. 生活随记 - 祝福大家2021年新年快乐
  18. 微信小程序的wxml、wxss、js、json的理解
  19. hdu 4541 Ten Googol
  20. android原生见缝插针游戏自定义控件源码

热门文章

  1. 6个超实用黑科技工具,电脑端、移动端都有份,强烈建议收藏
  2. oracle 类证书,Oracle 各种认证大全
  3. NASTRAN bdf介绍
  4. 电路实验——实验一 电路基本测量
  5. 高手实例解析蠕虫病毒的原理
  6. SHELL体系知识I
  7. 谍影重重4 伯恩的遗产 720P 8.97G DTS-HD 下载
  8. dataworks函数
  9. 【小米红米手机】红米note4\note4x\联发科\调节音量分级教程 教你调节最小/最大音量
  10. 如何实现电脑远程开关机?