共用方式為


HOW TO:將自訂資訊加入 TreeView 或 ListView 控制項 (Windows Form)

您可以在 Windows Form TreeView 控制項或 ListView 控制項的衍生項目中,建立衍生節點。 衍生讓您可以加入任何所需的欄位,以及處理它們的自訂方法和建構函式。 此功能的用法之一是將 Customer 物件附加至每個樹狀節點或清單項目。 這裡是 TreeView 控制項的範例,但是 ListView 控制項也可以使用相同的方式。

若要衍生樹狀節點

  • 建立衍生自 TreeNode 類別的新節點類別,此類別具有可以記錄檔案路徑的自訂欄位。

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

若要使用衍生的樹狀節點

  1. 您可以使用新衍生的樹狀節點做為函式呼叫 (Function Call) 的參數。

    在以下範例中,為文字檔位置所設定的路徑為 [我的文件] 資料夾。 這是可以做到的,因為您可預測到大部分執行 Windows 作業系統的電腦都會包含這個目錄。 這也可讓使用者以最基本的系統存取層級,便可安全執行應用程式。

    ' 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. 如果您傳遞的是型別為 TreeNode 類別的樹狀節點,則必須將它強制轉型 (Cast) 為衍生類別。 強制轉型是將某個型別的物件明確轉換為另一個型別的物件。 如需強制轉型的詳細資訊,請參閱隱含和明確轉換 (Visual Basic) (Visual Basic)、() 運算子 (C# 參考) (Visual C#) 或 Cast Operator: () (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));
       }
    

請參閱

其他資源

TreeView 控制項 (Windows Form)

ListView 控制項 (Windows Form)