Como: Adicionar informações de personalizado a um TreeView ou ListView Control (Windows Forms)
Você pode criar um nó derivado em um Windows Forms TreeView controle ou um item derivado em um ListView de controle. Derivação permite que você adicione qualquer campo que você precisa, bem como métodos personalizados e construtores para manuseá-los. Um uso desse recurso é anexar um objeto de cliente para cada item de lista ou nó de árvore. Os exemplos aqui são para uma TreeView controle, mas a mesma abordagem pode ser usado para um ListView de controle.
Para derivar um nó de árvore
Criar uma nova classe de nó, derivada de TreeNode classe, que tem um campo personalizado para registrar um caminho de arquivo.
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("\\")); } };
Para usar um nó de árvore derivada
Você pode usar o novo nó de árvore derivada como um parâmetro para chamadas de função.
No exemplo abaixo, o caminho definido para o local do arquivo de texto é a pasta Meus documentos. Isso é feito porque você pode assumir que a maioria dos computadores que executam o sistema operacional Windows inclua este diretório. Isso também permite que os usuários com níveis de acesso do sistema mínimo com segurança, execute o aplicativo.
' 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")));
Se você é passados no nó de árvore e ele é digitado como um TreeNode classe, em seguida, você precisará converter sua turma de derivada. A conversão é uma conversão explícita de um tipo de objeto para outro. For more information on casting, see Conversões explícitas e implícitas (Visual Basic) (Visual Basic), Operador () (TRANSLATION FROM VPE FOR CSHARP Reference) (Visual C#), or 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)); }