Nasıl yapılır: UIHierarchy kullanarak ağaç görünümleri değiştirme
Bazı aracı windows Visual Studio, aþaðýdaki gibi Çözüm Gezgini, bunların içeriğini değiştirmek için kullanabileceğiniz açık Otomasyon nesneleri yok. Bu araç pencereleri ancak sahip bir ağaç görünümü — diğer bir deyişle, bir hiyerarşik anahat stili, düğüm görünümü —, program aracılığıyla erişebilirsiniz. UIHierarchy Nesnesi bu araç pencereleri ağaç görünümlerinde temsil eder ve düğümlerini içeriğini görüntülemek ve bunlar üzerinde yineleme sağlar.
Nesne adı |
Tanımlama |
---|---|
UIHierarchyNesne |
Belirtilen araç penceresi ağaç görünümünde temsil eder. |
UIHierarchyItemskoleksiyonu |
Tüm düğümlerin ağaç görünümünde temsil eder. |
UIHierarchyItemNesne |
Ağaç görünümünde bir düğümü temsil eder. |
Bu nesne ve koleksiyonların kullanarak şunları yapabilirsiniz:
(Tek veya çarpın) seçin ve ağaç görünümünde düğümleri görüntüleyin.
Ekleme noktasını, ağaç görünümünde yukarı veya aşağı taşıyın.
Seçili öğenin değerini döndürür veya bu varsayılan eylemi gerçekleştirin.
ToolWindows Nesne (hangi ayrıca döndürülen dan ToolWindows) çeşitli araç pencerelerinde rahatlık verir Visual Studio. _ Kullanmak yerine,applicationObject.Windows.Item(EnvDTE.Constants.vsWindowKindOutput), artık kullanabilirsiniz _applicationObject.ToolWindows.OutputWindow.
Not
Gördüğünüz iletişim kutuları ve menü komutları, etkin ayarlarınıza ve ürün sürümüne bağlı olarak Yardım menüsünde açıklanana göre farklılık gösterebilir.Bu yordamları genel geliştirme ayarları etkin geliştirilmiştir.Ayarlarınızı değiştirmek için Al ve Verayarları üzerinde araçları menü. Daha fazla bilgi için bkz. Visual Studio ayarları.
Örnek
Rağmen UIHierarchy nesnesini gösteren bir ağaç görünümü gibi olan neredeyse herhangi bir araç penceresinin içeriğini Çözüm Gezgini, araç penceresi ise hala bir Window nesne. UIHierarchyItems Özelliği belirtilen aracı penceresinde en üst seviyedeki düğümler koleksiyonu döndürür. İçinde Çözüm Gezgini, yalnızca tek bir üst düzey düğüm (Çözüm) yoktur. Sonuç olarak, bu pencere proje düğümünü koleksiyonunda en üst düzey düğümün yerine pencerenin olan UIHierarchyItems koleksiyonu.
Bunu aklınızda pul, belirli bir düğümü'ne erişmek için iki yol vardır (UIHierarchyItem) ağaç görünümünde:
Kullanarak GetItem yöntemini doğrudan bir çözüm/proje/madde düzeni kullanmak istediğiniz düğüme başvuracak.
Kullanarak UIHierarchyItems.Item.UIHierarchyItems... (madde/koleksiyon/koleksiyon desen).
Düğüm iç içe geçme içine daha derin gitmek için yalnızca bu desen kullanmaya devam. Örneğin, en üst düzey düğüm alt düğüm gitmek için kullanacağınız UIHierarchy.UIHierarchyItems.Item(1).UIHierarchyItems.Item(2).
Alt düzey düğümü'ne erişmek için iki teknik nasıl örnekleri aşağıdaki örneklerde gösterilmiştir.
Bu örnekler gösterir nasıl çeşitli üyeleri, başvuru ve eklenti UIHierarchy tüm öğeleri listelemek için otomasyon modeli Çözüm Gezgini.
İlk örnek kullanan GetItem başvurular düğümünde içeriğine erişme yöntemi stratejisini Çözüm Gezgini. Eklenti kodu çalıştırma hakkında daha fazla bilgi için bkz: Nasıl yapılır: derlemek ve Otomasyon nesne modeli kod örneklerini çalıştırmak.
Not
Örneğin Çözüm Gezgini bir ileti kutusu verilerini gönderir.
Imports System.Text
Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
_applicationObject = CType(application, DTE2)
_addInInstance = CType(addInInst, AddIn)
listSlnExpNodes(_applicationObject)
End Sub
Sub listSlnExpNodes(dte as DTE2)
' Requires reference to System.Text for StringBuilder.
Dim UIH As UIHierarchy = dte.ToolWindows.SolutionExplorer
' Set a reference to the first level nodes in Solution Explorer.
' Automation collections are one-based.
Dim UIHItem As UIHierarchyItem = _
UIH.GetItem("MyAddin1\MyAddin1\References")
Dim file As UIHierarchyItem
Dim sb As New StringBuilder
' Iterate through first level nodes.
For Each file In UIHItem.UIHierarchyItems
sb.AppendLine(file.Name)
' Iterate through second level nodes (if they exist).
Dim subitem As UIHierarchyItem
For Each subitem In file.UIHierarchyItems
sb.AppendLine(" " & subitem.Name)
Next
Next
MsgBox(sb.ToString)
End Sub
using System.Text;
public void OnConnection(object application, ext_ConnectMode _
connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
listSlnExpNodes(_applicationObject);
}
public void listSlnExpNodes(DTE2 dte)
{
// Requires reference to System.Text for StringBuilder.
UIHierarchy UIH = dte.ToolWindows.SolutionExplorer;
// Set a reference to the first level nodes in Solution Explorer.
// Automation collections are one-based.
UIHierarchyItem UIHItem =
UIH.GetItem("MyAddin1\\MyAddin1\\References");
StringBuilder sb = new StringBuilder();
// Iterate through first level nodes.
foreach ( UIHierarchyItem file in UIHItem.UIHierarchyItems )
{
sb.AppendLine(file.Name);
// Iterate through second level nodes (if they exist).
foreach ( UIHierarchyItem subitem in file.UIHierarchyItems )
{
sb.AppendLine(" "+subitem.Name);
}
}
MessageBox.Show(sb.ToString());
}
Aşağıdaki örnek, nasıl kullanılacağını gösterir UIHierarchy ağaç görünümü içeriğini listelemek için Çözüm Gezgini pencere.
Sub cvTreeView()
Dim uih As UIHierarchy = DTE.ToolWindows.SolutionExplorer
Dim uihItem As UIHierarchyItem
Dim uihItems As UIHierarchyItems = uih.UIHierarchyItems
Dim msg As String
For Each uihItem In uihItems
msg += uihItem.Name & vbCr
Next
MsgBox(msg)
End Sub
Ayrıca bkz.
Görevler
Nasıl yapılır: Solution Explorer'da Denetim
Nasıl yapılır: pencere özelliklerini değiştirme
Kavramlar
Diğer Kaynaklar
Oluşturma ve ortam Windows denetleme