Nasıl yapılır: Bir TreeView veya ListView Denetimine Özel Bilgi Ekleme (Windows Forms)
Windows Forms denetiminde veya denetimde türetilmiş TreeView bir öğede türetilmiş düğüm ListView oluşturabilirsiniz. Türetme, size gereken tüm alanları ve bunları işlemeye özel yöntemleri ve oluşturucuları eklemenize olanak sağlar. Bu özelliğin bir kullanımı, her ağaç düğümüne veya liste öğesine bir Customer nesnesi eklemektir. Buradaki örnekler bir TreeView denetime göredir ancak aynı yaklaşım bir denetim için ListView de kullanılabilir.
Ağaç düğümü türetmek için
Dosya yolunu kaydetmek için özel bir alana sahip TreeNode olan sınıfından türetilen yeni bir düğüm sınıfı oluşturun.
Class myTreeNode Inherits TreeNode Public FilePath As String Sub New(ByVal fp As String) MyBase.New() FilePath = fp Me.Text = fp.Substring(fp.LastIndexOf("\")) End Sub End Classclass myTreeNode : TreeNode { public string FilePath; public myTreeNode(string fp) { FilePath = fp; this.Text = fp.Substring(fp.LastIndexOf("\\")); } }ref class myTreeNode : public TreeNode { public: System::String ^ FilePath; myTreeNode(System::String ^ fp) { FilePath = fp; this->Text = fp->Substring(fp->LastIndexOf("\\")); } };
Türetilmiş ağaç düğümünü kullanmak için
Yeni türetilmiş ağaç düğümünü işlev çağrılarını işlev için parametre olarak kullanabilirsiniz.
Aşağıdaki örnekte, metin dosyasının konumu için ayarlanmış yol Belgelerim klasörüdür. Bu, işletim sistemini çalıştıran bilgisayarların çoğunun bu dizini Windows olduğundan yapılır. Bu, en düşük sistem erişim düzeyine sahip kullanıcıların uygulamayı güvenli bir şekilde çalıştırmalarına da olanak sağlar.
' You should replace the bold text file ' in the sample below with a text file of your own choosing. TreeView1.Nodes.Add(New myTreeNode (System.Environment.GetFolderPath _ (System.Environment.SpecialFolder.Personal) _ & "\ TextFile.txt ") )// You should replace the bold text file // in the sample below with a text file of your own choosing. // Note the escape character used (@) when specifying the path. treeView1.Nodes.Add(new myTreeNode(System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal) + @"\TextFile.txt") );// You should replace the bold text file // in the sample below with a text file of your own choosing. treeView1->Nodes->Add(new myTreeNode(String::Concat( System::Environment::GetFolderPath (System::Environment::SpecialFolder::Personal), "\\TextFile.txt")));Ağaç düğümü geçirildi ve sınıf olarak türetildi, TreeNode türetilen sınıfınıza türetilen sınıfına türetilen gerekir. Tür dönüştürme, bir nesne türünden diğerine açık bir dönüştürmedir. Tür dönüştürme hakkında daha fazla bilgi için bkz. Örtülü ve Açık Dönüştürmeler (Visual Basic), Tür dönüştürme ve tür dönüştürmeleri (Visual C#) veya Atama İşleci: () (Visual C++).
Public Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect Dim mynode As myTreeNode mynode = CType(e.node, myTreeNode) MessageBox.Show("Node selected is " & mynode.filepath) End Subprotected void treeView1_AfterSelect (object sender, System.Windows.Forms.TreeViewEventArgs e) { myTreeNode myNode = (myTreeNode)e.Node; MessageBox.Show("Node selected is " + myNode.FilePath); }private: System::Void treeView1_AfterSelect(System::Object ^ sender, System::Windows::Forms::TreeViewEventArgs ^ e) { myTreeNode ^ myNode = safe_cast<myTreeNode^>(e->Node); MessageBox::Show(String::Concat("Node selected is ", myNode->FilePath)); }