İzlenecek yol: Tasarımcıyı Kullanarak ListView ve TreeView Denetimleri ile Gezgin Stilinde bir Arabirim Oluşturma
Visual Studio avantajlarından biri, profesyonel görünümlü Windows Forms uygulamalarını kısa bir süre içinde oluşturma olanağıdır. yaygın bir senaryo, ile bir kullanıcı arabirimi (uı) ListView ve TreeView Windows işletim sistemlerinin Windows Explorer özelliğine benzer denetimler oluşturmaktır. Windows gezgini, bir kullanıcının bilgisayarındaki dosya ve klasörlerin hiyerarşik yapısını görüntüler.
ListView ve TreeView denetimi içeren formu oluşturmak için
Dosya menüsünde, Yeni' nin üzerine gelin ve Project' ye tıklayın.
Yeni Proje iletişim kutusunda aşağıdakileri yapın:
kategoriler ' de Visual Basic veya Visual C#' yi seçin.
şablon listesinde Windows Forms uygulama' yı seçin.
Tamam'a tıklayın. yeni bir Windows Forms projesi oluşturulur.
Forma bir SplitContainer denetim ekleyin ve Dock özelliğini olarak ayarlayın Fill .
ImageListForma adlandırılmış bir ad ekleyin
imageList1ve iki resim eklemek için Özellikler penceresi kullanın: bir klasör görüntüsü ve bir belge görüntüsü, bu sırada.TreeViewForma adlı bir denetim ekleyin
treeview1ve denetimin sol tarafında konumlandırın SplitContainer . Özellikler penceresi içintreeView1aşağıdakileri yapın:ListViewForma adlı bir denetim ekleyin
listView1ve denetimin sağ tarafına konumlandırın SplitContainer . Özellikler penceresi içinlistview1aşağıdakileri yapın:* * Özelliğindeki üç nokta () işaretine tıklayarak ColumnHeader koleksiyon düzenleyicisini açın. *

* üç sütun ekleyin ve Text özelliğini Namesırasıyla, ve olarak ayarlayınTypeLast Modified. Tamam’a tıklayarak iletişim kutusunu kapatın.SmallImageListÖzelliğini olarak ayarlayın
imageList1.
Node ve alt düğümlere doldurmak için kodu uygulayın TreeView . Bu kodu
Form1sınıfına ekleyin.private void PopulateTreeView() { TreeNode rootNode; DirectoryInfo info = new DirectoryInfo(@"../.."); if (info.Exists) { rootNode = new TreeNode(info.Name); rootNode.Tag = info; GetDirectories(info.GetDirectories(), rootNode); treeView1.Nodes.Add(rootNode); } } private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo) { TreeNode aNode; DirectoryInfo[] subSubDirs; foreach (DirectoryInfo subDir in subDirs) { aNode = new TreeNode(subDir.Name, 0, 0); aNode.Tag = subDir; aNode.ImageKey = "folder"; subSubDirs = subDir.GetDirectories(); if (subSubDirs.Length != 0) { GetDirectories(subSubDirs, aNode); } nodeToAddTo.Nodes.Add(aNode); } }Private Sub PopulateTreeView() Dim rootNode As TreeNode Dim info As New DirectoryInfo("../..") If info.Exists Then rootNode = New TreeNode(info.Name) rootNode.Tag = info GetDirectories(info.GetDirectories(), rootNode) treeView1.Nodes.Add(rootNode) End If End Sub Private Sub GetDirectories(ByVal subDirs() As DirectoryInfo, _ ByVal nodeToAddTo As TreeNode) Dim aNode As TreeNode Dim subSubDirs() As DirectoryInfo Dim subDir As DirectoryInfo For Each subDir In subDirs aNode = New TreeNode(subDir.Name, 0, 0) aNode.Tag = subDir aNode.ImageKey = "folder" subSubDirs = subDir.GetDirectories() If subSubDirs.Length <> 0 Then GetDirectories(subSubDirs, aNode) End If nodeToAddTo.Nodes.Add(aNode) Next subDir End SubÖnceki kod System.IO ad alanını kullandığından, formun üst kısmına uygun using veya import ifadesini ekleyin.
using System.IO;Imports System.IOFormun Oluşturucusu veya olay işleme yönteminde, önceki adımda bulunan kurulum yöntemini çağırın Load . Form oluşturucusuna bu kodu ekleyin.
public Form1() { InitializeComponent(); PopulateTreeView(); }Public Sub New() InitializeComponent() PopulateTreeView() End SubNodeMouseClickİçin olayını işleyin
treeview1NodeMouseClick velistview1bir düğüm tıklandığında bir düğümün içeriğiyle doldurmak için kodu uygulayın. Bu koduForm1sınıfına ekleyin.void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { TreeNode newSelected = e.Node; listView1.Items.Clear(); DirectoryInfo nodeDirInfo = (DirectoryInfo)newSelected.Tag; ListViewItem.ListViewSubItem[] subItems; ListViewItem item = null; foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories()) { item = new ListViewItem(dir.Name, 0); subItems = new ListViewItem.ListViewSubItem[] {new ListViewItem.ListViewSubItem(item, "Directory"), new ListViewItem.ListViewSubItem(item, dir.LastAccessTime.ToShortDateString())}; item.SubItems.AddRange(subItems); listView1.Items.Add(item); } foreach (FileInfo file in nodeDirInfo.GetFiles()) { item = new ListViewItem(file.Name, 1); subItems = new ListViewItem.ListViewSubItem[] { new ListViewItem.ListViewSubItem(item, "File"), new ListViewItem.ListViewSubItem(item, file.LastAccessTime.ToShortDateString())}; item.SubItems.AddRange(subItems); listView1.Items.Add(item); } listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }Private Sub treeView1_NodeMouseClick(ByVal sender As Object, _ ByVal e As TreeNodeMouseClickEventArgs) _ Handles treeView1.NodeMouseClick Dim newSelected As TreeNode = e.Node listView1.Items.Clear() Dim nodeDirInfo As DirectoryInfo = _ CType(newSelected.Tag, DirectoryInfo) Dim subItems() As ListViewItem.ListViewSubItem Dim item As ListViewItem = Nothing Dim dir As DirectoryInfo For Each dir In nodeDirInfo.GetDirectories() item = New ListViewItem(dir.Name, 0) subItems = New ListViewItem.ListViewSubItem() _ {New ListViewItem.ListViewSubItem(item, "Directory"), _ New ListViewItem.ListViewSubItem(item, _ dir.LastAccessTime.ToShortDateString())} item.SubItems.AddRange(subItems) listView1.Items.Add(item) Next dir Dim file As FileInfo For Each file In nodeDirInfo.GetFiles() item = New ListViewItem(file.Name, 1) subItems = New ListViewItem.ListViewSubItem() _ {New ListViewItem.ListViewSubItem(item, "File"), _ New ListViewItem.ListViewSubItem(item, _ file.LastAccessTime.ToShortDateString())} item.SubItems.AddRange(subItems) listView1.Items.Add(item) Next file listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize) End SubC# kullanıyorsanız, olay NodeMouseClick işleme yöntemiyle ilişkili olayın bulunduğundan emin olun. Form oluşturucusuna bu kodu ekleyin.
this.treeView1.NodeMouseClick += new TreeNodeMouseClickEventHandler(this.treeView1_NodeMouseClick);
Uygulamayı Test Etme
Artık, beklenen şekilde davrandığından emin olmak için formu test edebilirsiniz.
Formu test etmek için
Uygulamayı çalıştırmak için F5'e basın.
TreeViewSol tarafta proje dizininizi görüntüleyen bir denetim içeren bir bölünmüş form ve ListView sağ tarafta üç sütunlu bir denetim görürsünüz. TreeViewDizin düğümlerini seçerek ve ListView Seçilen dizinin içeriğiyle doldurulmuş olarak gezinerek çapraz geçiş yapabilirsiniz.
Sonraki Adımlar
Bu uygulama, size birlikte kullanabileceğiniz ve denetimleri kullanabileceğiniz bir yönteme örnek TreeView verir ListView . Bu denetimler hakkında daha fazla bilgi için aşağıdaki konulara bakın: