ICSharp

来源:互联网 发布:虎豹骑 优化 编辑:程序博客网 时间:2024/04/25 01:54

 

第二章    View

View(视图)是SD的基础部分,View通常包含编辑器,如代码编辑器,资源编辑器。基本上,它是显示于MPI窗口选项卡页面上的面板。

    制作View要从AbstractViewContent继承下来。下面就进入我们的实战操作流程,首先新建一个类库行的项目,SDViewDemoPlug,把Class1.cs改名为Main.cs,修改为如下内容:

 1

using System;

 2

using ICSharpCode.Core.AddIns;

 3

using ICSharpCode.Core.AddIns.Codons;

 4

 5

using ICSharpCode.SharpDevelop.Gui;

 6

 7

namespace SDViewDemoPlug

 8

{

 9

    public

 

class ShowViewCommand : AbstractMenuCommand

10

    

{

11

        public

 

override

 

void Run()

12

        

{            

13

            WorkbenchSingleton.Workbench.ShowView(new SDViewContent());

14

        }

15

    }

16

}

添加一个新类,SDViewContent,文件名为SDViewContent.cs,修改内容如下:

 1

using System;

 2

using System.Drawing;

 3

using System.Windows.Forms;

 4

using ICSharpCode.SharpDevelop.Gui;

 5

 6

namespace 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

 

false;}

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 Dispose()

26

        

{        

27

            p.Dispose();

28

        }

29

        

30

        public SDViewContent()

31

        

{

32

            TitleName =

 

"TestView";            

33

        }        

34

        

35

    }

36

}

37

 

在项目中添加新建项à用户控件。改名为SDViewControl各位可以在SDViewControl上添加一些相关的内容。最后添加插件配置文件ViewDemoPlug.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="SDViewDemoPlug.dll"/>

    </Runtime>

    <Extension path = "/SharpDevelop/Workbench/MainMenu/Tools">

        <MenuItem id = "SDViewDemo"                 

                 label = "ShowMyView"

 

                 class = "SDViewDemoPlug.ShowViewCommand"/>

    </Extension>

</AddIn>

 

还有不要忘记把ICSharpCode.Core.dllSharpDevelop.Base.dll引用进项目中来。编译后把ViewDemoPlug.addinSDViewDemoPlug.dll拷贝到SD/AddIns/目录下。运行SD,就可以看到在【工具】菜单下出现了【ShowMyView菜单项。ClickShowMyView菜单项后显示如图,再clickShowMyView菜单项后就会又显示一个TestView。各位如果问:“需要做象“启动页”一样的View,如果已经有打开的了就会激活打开的View该如何处理呢?”。其实很简单,你可以把ShowViewCommand类中的Run函数更改为:

foreach (IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection) 

    

{

        if (view is SDViewContent) 

        

{

            view.WorkbenchWindow.SelectWindow();                    

            return;

        }

    }            

    WorkbenchSingleton.Workbench.ShowView(new SDViewContent());

Demo演示了如何在SD添加一个View,同时也演示了如何在SD中更改菜单项。每添加一个菜单项时都要继承一个AbstractMenuCommand,并且改写Run()函数,当然你的XXXCommand也可以从SDAbstractCommand继承,但要实现IMenuCommand接口。因为添加菜单项和添加工具条按钮比较简单,在以后的内容中我会一起讲,在此我就不多说了。

 

源文档 <http://www.cnblogs.com/CBuilder/archive/2005/08/06/209053.aspx>