Porady: dodawanie niestandardowych informacji do formantu TreeView lub ListView (Formularze systemu Windows)
Węzeł pochodny można utworzyć w kontrolce Windows Forms TreeView lub w elemencie pochodnym w kontrolce ListView . Wyprowadzanie umożliwia dodawanie dowolnych pól, których potrzebujesz, a także niestandardowych metod i konstruktorów do ich obsługi. Jedną z tych funkcji jest dołączenie obiektu Klient do każdego węzła drzewa lub elementu listy. Poniżej przedstawiono przykłady dla kontrolki TreeView , ale dla kontrolki ListView można użyć tego samego podejścia.
Aby utworzyć węzeł drzewa
Utwórz nową klasę węzła pochodzącą z TreeNode klasy, która ma pole niestandardowe do zarejestrowania ścieżki pliku.
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("\\")); } };
Aby użyć węzła drzewa pochodnego
Możesz użyć nowego węzła drzewa pochodnego jako parametru do wywołań funkcji.
W poniższym przykładzie ścieżka ustawiona dla lokalizacji pliku tekstowego to folder Moje dokumenty. Dzieje się tak, ponieważ można założyć, że większość komputerów z systemem operacyjnym Windows będzie zawierać ten katalog. Dzięki temu użytkownicy z minimalnymi poziomami dostępu systemu mogą bezpiecznie uruchamiać aplikację.
' 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")));
Jeśli węzeł drzewa zostanie przekazany i zostanie wpisany jako TreeNode klasa, musisz rzutować do klasy pochodnej. Rzutowanie to jawna konwersja z jednego typu obiektu na inny. Aby uzyskać więcej informacji na temat rzutowania, zobacz Niejawne i jawne konwersje (Visual Basic), rzutowanie i konwersje typów (Visual C#) lub Operator rzutowania: () (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)); }
Zobacz też
.NET Desktop feedback