天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

前言

可擴展性開發(fā)(五)中,我介紹了對于Solution、Project、ProjectItem的基本操作。可以認為它們面向的是解決方案內(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é)點,它的UIHierarchyItems集合表示其所包含的第一級子節(jié)點(UIHierarchyItem),每一個UIHierarchyItem同時也有UIHierarchyItems屬性,如此遞歸下去。這種結(jié)構(gòu)很像它們所表示的數(shù)據(jù):Solution、Project以及ProjectItem。在使用這些對象之前,先大致了解一下它們的主要成員:

1)UIHierarchy

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

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

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

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

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

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

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

更多信息請參看MSDN

2)UIHierarchyItems集合

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

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

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

更多信息請參看MSDN

3)UIHierarchyItem

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

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

Select():選中節(jié)點;

更多信息請參看MSDN

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

CollapseAllProjects示例

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

collapse-all-projects-menu

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

0)添加命令

之前我們曾添加過CloseAllDocuments和NPetshopSlnGenerator命令(見可擴展性開發(fā)),它們分別加在文本編輯器的標簽和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 可擴展性開發(fā)(六):操作Solution Explorer,轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 日本XXXXZZX片免费观看 | 又色又爽又黄gif动态视频 | 一本色道久久综合亚洲精品加 | 最近韩国日本免费观看mv免费版 | 成人毛片免费播放 | 亚洲黄色免费观看 | 偷窥美女3 | 久久精品视在线观看2 | 成人区在线观看免费视频 | 双性大乳浪受噗呲噗呲h总 双性被疯狂灌满精NP | 99久久精品费精品国产一区二 | 日本国产精品无码一区免费看 | 叔叔 电影完整版免费观看韩国 | 久久精品国产清白在天天线 | 无人区国产片 | 免费看 a一级毛片 免费久久狼人香蕉网 | 国产午夜视频在线 | 欧美 日韩 无码 有码 在线 | 亚洲狠狠97婷婷综合久久久久 | 久久精品亚洲AV中文2区金莲 | 午夜影院c绿象 | 成人午夜剧场 | 中文字幕久久熟女人妻AV免费 | 91亚洲 欧美 国产 制服 动漫 | 学生妹被爆插到高潮无遮挡 | 美女张开腿让我了一夜 | 日本韩国欧美一区 | 2021扫黑风暴在线观看免费完整版 | 青青青青久久久久国产的 | 亚洲国产日韩欧美高清片a 亚洲国产日韩a精品乱码 | 男人J放进女人屁股免费观看 | 日韩高清毛片 | 国产精品看高国产精品不卡 | 榴莲推广APP网站入口官网 | 欧美精品九九99久久在观看 | 久久亚洲A片COM人成A | 乐乐亚洲精品综合影院 | 99精品在线看 | 色mimi| 在线 国产 欧美 专区 | 国产永不无码精品AV永久 |