ICSharp

 

第二章    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>

 

 
發佈了3 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章