色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Visual Studio 2008 可擴(kuò)展性開發(fā)(六):操作Solution Explorer

前言

可擴(kuò)展性開發(fā)(五)中,我介紹了對于Solution、Project、ProjectItem的基本操作。可以認(rèn)為它們面向的是解決方案內(nèi)容的物理(文件)表示,我們需要使用VS提供的解決方案管理器(Solution Explorer)來管理它們。毫無疑問,解決方案管理器是VS中最重要的UI元素之一,本文將介紹對它的操作。

工具窗口內(nèi)的層次結(jié)構(gòu)

如果你觀察一下解決方案管理器和服務(wù)器管理器(Server Explorer),就會發(fā)現(xiàn)它們都使用樹形結(jié)構(gòu)來表現(xiàn)背后的數(shù)據(jù)。在AOM中,UIHierarchyUIHierarchyItemsUIHierarchyItem用于表示這樣的層次結(jié)構(gòu)。UIHierarchy表示根節(jié)點(diǎn),它的UIHierarchyItems集合表示其所包含的第一級子節(jié)點(diǎn)(UIHierarchyItem),每一個UIHierarchyItem同時(shí)也有UIHierarchyItems屬性,如此遞歸下去。這種結(jié)構(gòu)很像它們所表示的數(shù)據(jù):Solution、Project以及ProjectItem。在使用這些對象之前,先大致了解一下它們的主要成員:

1)UIHierarchy

Parent:節(jié)點(diǎn)對象的父節(jié)點(diǎn);

SelectedItems:當(dāng)前節(jié)點(diǎn)選中的子節(jié)點(diǎn)集合;

UIHierarchyItems:當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)集合;

DoDefaultAction():對節(jié)點(diǎn)進(jìn)行默認(rèn)操作,類似于進(jìn)行雙擊或按下回車鍵;

GetItem():按指定路徑返回一個子節(jié)點(diǎn);

SelectDown():選中當(dāng)前選中節(jié)點(diǎn)的下個節(jié)點(diǎn);

SelectUp():選中當(dāng)前選中節(jié)點(diǎn)的上個節(jié)點(diǎn);

更多信息請參看MSDN。

2)UIHierarchyItems集合

Expanded:獲取或設(shè)置所表示的節(jié)點(diǎn)是否已展開;

Parent:節(jié)點(diǎn)集合的父節(jié)點(diǎn);

Item():返回集合中的一項(xiàng);

更多信息請參看MSDN。

3)UIHierarchyItem

IsSelected:獲取節(jié)點(diǎn)是否被選中;

Name:節(jié)點(diǎn)對象的名稱;

Select():選中節(jié)點(diǎn);

更多信息請參看MSDN

有了這些知識,我們現(xiàn)在有能力去探索對解決方案管理器的操作了。

CollapseAllProjects示例

項(xiàng)目剛開始的時(shí)候,項(xiàng)目的數(shù)量也許還不太多,隨著程序規(guī)模的增大,項(xiàng)目數(shù)量也會不斷增加,這時(shí)要找到某個項(xiàng)目或者某個文件,就變得越來越麻煩,你得先把大量的項(xiàng)目折疊起來。如果有一個命令,可以快速地折疊起所有項(xiàng)目,就方便多了:

collapse-all-projects-menu

這里的思路很簡單,只要找到所有的項(xiàng)目節(jié)點(diǎn),依次查看每個項(xiàng)目,如果項(xiàng)目展開了,就把它折疊起來。

0)添加命令

之前我們曾添加過CloseAllDocuments和NPetshopSlnGenerator命令(見可擴(kuò)展性開發(fā)),它們分別加在文本編輯器的標(biāo)簽和Tools菜單上,這里的過程沒什么不同:

C# Code - 添加CollapseAllProjects命令
OnConnection()
{
    
    
// Get "Solution Explorer" command bar
    CommandBar slnCommandBar = GetCommandBarByName("Solution");
    
// Add a new command
    AddNamedCommand2(slnCommandBar, COLLAPSE_ALL_PROJECTS_COMMAND_NAME,
        
"Collapse All Projects""Collapse All Projects"false0, slnCommandBar.Controls.Count + 1);
}

QueryStatus()
{
    
    
else if (commandName == GetCommandFullName(COLLAPSE_ALL_PROJECTS_COMMAND_NAME))
    {
        status 
= (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported | vsCommandStatus.vsCommandStatusEnabled;
        
return;
    }
}

Exec()
{
    
    
else if (commandName == GetCommandFullName(COLLAPSE_ALL_PROJECTS_COMMAND_NAME))
    {
        CollapseAllProjects();

        handled 
= true;
        
return;
    }
}

NET技術(shù)Visual Studio 2008 可擴(kuò)展性開發(fā)(六):操作Solution Explorer,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 漳州市| 蛟河市| 武乡县| 承德市| 江阴市| 历史| 曲沃县| 彭泽县| 桃江县| 利川市| 西充县| 广东省| 华宁县| 米易县| 徐汇区| 高雄县| 阜平县| 缙云县| 潮安县| 田林县| 鄂伦春自治旗| 邵武市| 宁南县| 玛多县| 通榆县| 永嘉县| 观塘区| 东阿县| 澳门| 同德县| 诸城市| 武夷山市| 天峻县| 玉溪市| 耒阳市| 洛南县| 驻马店市| 新宾| 桐庐县| 千阳县| 庆云县|