Sdílet prostřednictvím


Postupy: Přidání vlastních informací do ovládacího prvku TreeView nebo ListView (Windows Forms)

Odvozený uzel můžete vytvořit v ovládacím prvku model Windows Forms TreeView nebo v odvozené položce ListView ovládacího prvku. Odvození umožňuje přidat všechna pole, která požadujete, a také vlastní metody a konstruktory pro jejich zpracování. Jedním z použití této funkce je připojení objektu Zákazník ke každému uzlu stromu nebo položce seznamu. Tady jsou příklady pro TreeView ovládací prvek, ale stejný přístup lze použít pro ListView ovládací prvek.

Odvození uzlu stromu

  • Vytvořte novou třídu uzlu odvozenou od TreeNode třídy, která má vlastní pole pro záznam cesty k souboru.

    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 Class  
    
    class 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("\\"));  
       }  
    };  
    

Použití odvozeného uzlu stromu

  1. K volání funkcí můžete použít nový odvozený uzel stromu jako parametr.

    V následujícím příkladu je cesta nastavená pro umístění textového souboru složka Dokumenty. To se provádí, protože můžete předpokládat, že většina počítačů s operačním systémem Windows bude obsahovat tento adresář. To také umožňuje uživatelům s minimálními úrovněmi přístupu k systému bezpečně spouštět aplikaci.

    ' 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")));  
    
  2. Pokud předáte uzel stromu a zadáte ho TreeNode jako třídu, budete muset přetypovat do odvozené třídy. Přetypování je explicitní převod jednoho typu objektu na jiný. Další informace o přetypování naleznete v tématu Implicitní a explicitní převody (Visual Basic), Přetypování a převody typů (Visual C#) nebo Operátor přetypování: () (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 Sub  
    
    protected 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));  
       }  
    

Viz také