前 言
最近在网上有很多关于SharpDevelop代码分析的文章,但对SharpDevelop
插件和核心服务开发的文章确很少。这份文档我想应该会对大家有帮助。为了不
浪费大家的时间和网络流量,我不打算给大家讲SharpDevelop的基本概念和内
部的代码分析。各位可以参阅清华大学出版的一本红皮书《C#软件项目开发全程
剖析-全面透视Shar宁夏人事考试网 pDevelop软件的开发内幕》(我真的不是清华的书托),
虽然翻译的一般、但有总比没有的好,各位也可以参阅博客园()
另外几位的文章,其中古月春秋的《SharpDevelop代码分析》系列是个人认为
写的很不错的,很见作者的功底。(题外话:古月春秋的文章中提到了对codon
的翻译的问题,英文中电子、中子、光子、质子分别译为electron、 neutron、
photon、proton,此处大家会对-on后缀发出会心的微笑。Codon翻译成“代码子”
意思应该是很到位的,清华那本书中的“密码子”就逊色些了,但也还将就。)
这文章大家可以任意阅读转载,但请保持文档的完整转载。由于在工作的中
午休息期间所写,十分匆忙,难免有勿,请各位斧正。
为了方便起见,我在文章中都把SharpDevelop简称为SD。
第一章Pad
国民女神是谁 Pad(面板)就是SD中的停靠窗口。有这些特点:Pad
不能关闭,但可以隐藏或显示。每种类型的Pad只能打开一个,不能在
运行时添加,标题唯一。可以显示图标,由SD中的布局管理器负责管理。
通常不显示文件内容,而是辅助用户完成任务。
下面进入我们的实战流程,先新建一个类库型的项目,命名为
CSPadDemoPlug,把改名为,修改为如下内容:
1using System;
2using g;
3using ;
4
5using ;
6
7namespace SDPadDemoPlug
8{
9 public class SDPad : AbstractPadContent
10 {
11 SDPadControl control=new SDPadControl();
12 public SDPad(): ba("TestPanel")
13 {
14 }
15
16 public override Control Control
17 {
18 get
19 {
20 return this.control;
21 }
22 }
23
24 }
25}
26
记得要在项目中加入SD中的和
引用。这两个文件在SD下的Bin目录下。写SD的插件
需要包含。
在项目中添加新建项用户控件。改名为各位可以在
CSPadControl。
CSPadControl上添加一些相关的内容。
在工程中添加一个文件,这是插件配置文件,很重要,
内容如下:
<AddIn name = "SharpDevelop Plug Demo"
author = "SongYuanWu"
copyright = "GPL"
url =知否结局 "/CBuilder"
description = "SharpDevelop "
version = "1.0.0">
<Runtime>
<Import asmbly=""/>
Runtime>
<Extension path = "/SharpDevelop/Workbench/Views">
<Class id = "SDPadDemo"
class = ""/>
Extension>
AddIn>
OK!把编译后的和文件拷贝到SD的AddIns
目录下,运行SD就可以看到我们创建的Pad了(如下图),同时在SD的菜单【查
看】-【工具】下也出现了TestPanel菜单项。
如果需要指定pad的图标时,可以改更改
ba("TestPanel")为ba("TestPanel",
"IconID")。
InconID为图标的资源号,作为演示你可以用Class的图标“”来替代。
要点分析:
制作Pad的时候要从
AbstractPadContent继承。所以要using
;
.
addin文件中不要用中文,否则会出现错误,那如果需要用到末日预言 中文怎么办
呢?可以使用SD的字符串分析服务,把字符串改为如下形式
${res:StringID},StringID是SD中的资源ID,SD的ResourceService的使用,
我将会在后面的内容中讲述。
第二章View
View(视图)是SD的基础部分,View通常包态度决定成败 含编辑器,如代码编辑器,资
源编辑器。基本上,它是显示于MPI窗口选项卡页面上的面板。
制作View要从首先新建
AbstractViewContent继承下来。下面就进入我们的实战操作流程,
一个类库行的项目,SDViewDemoPlug,把改名为,修改为如下内容:
1using System;
2using ;
3using ;
4
5using ;
6
7namespace SDViewDemoPlug
8{
9 public class ShowViewCommand : AbstractMenuCommand
10 {
11 public override void Run()
12 {
13 ew(new SDViewContent());
14 }
15 }
16}
添加一个新类,SDViewContent,文件名为SDV,修改内容如下:
1using System;
2using g;
3using ;
4using ;
5
6namespace SDViewDemoPlug
7{
8 public class SDViewContent : AbstractViewContent
9 {
10 SDViewControl p=new SDViewControl();
11 public override Control Control
12 {
13 get {return p;}
14 }
15
16 public override bool IsReadOnly
17 {
18 get {return fal;}
19 }
20
21 public override void Save(string fileName){}
22 public override void Load(string fileName){}
23 public override void RedrawContent(){}
24
25 public override void Dispo()
26 { 称赞的反义词是什么
27 e();
28 }
29
30 public SDViewContent()
31 {
32 TitleName = "TestView";
33 }
34
35 }
36}
37
在项目中添加新建项用户控件。改名为各位可以在
SDViewControl。
SDViewControl上添加一些相关的内容。
最后添加插件配置文件,内
容如下:
<AddIn name = "SharpDevelop Plug Dem男人美容 o"
author = "SongYuanWu"
copyright = "GPL"
url = "/CBuilder"
description = "SharpDevelop"
version = "1.0.0">
<Runtime>
<Import asmbly=""/>
Runtime>
<Extension path = "/SharpDevelop/Workbench/MainMenu/Tools">
<MenuItem id = "SDViewDemo"
label = "ShowMyView"
c闻一多的诗歌 lass = "SDViewCommand"/>
Extension>
AddIn>
还有不要忘记把和引用进
项目中来。编译后把和拷贝到SD的
AddIns目录下。运行SD,就可以看到在【工具】菜单下出现了【】
ShowMyView菜
单项。ClickShowMyView菜单项后显示如图,再clickShowMyView菜单项后就会又显示一个TestView。
【】【】
各位如果问:“需要做象“启动页”一样的View,如果已经有打开的了就会激活打开的View该如何处理
呢?”。其实很简单,你可以把ShowViewCommand类中的Run函数更改非的成语 为:
foreach (IViewContent view in nch.ViewContentCollection)
{
if (view is SDViewContent)
{
Window();
return;
}
}
iew(new SDViewContent());
此D卧底归来结局 emo演示了如何在SD添加一个View,同时也演示了如何在SD中更改菜单项。每添加
一个菜单项时都要继承一个
AbstractMenuCommand,并且改写Run()函数,当然你的XXXCommand也
可以从SD的AbstractCommand继承,但要实现IMenuCommand接口。因为添加菜单项和添加工具条按钮比
较简单,在以后的内容中我会一起讲,在此我就不多说了。
本文发布于:2023-04-24 23:17:55,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/846417.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |