Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете создать производный узел в элементе управления TreeView Windows Forms или производный объект в элементе управления 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("\\")); } };
Использование производного узла дерева
Новый производный узел дерева можно использовать в качестве параметра для вызовов функций.
В приведенном ниже примере путь, заданный для расположения текстового файла, — папка "Мои документы". Это делается, так как можно предположить, что большинство компьютеров под управлением операционной системы 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")));
Если вы получаете узел дерева, типизированный как класс TreeNode, необходимо привести его к вашему производному классу. Приведение — это явное преобразование одного типа объекта в другой. Дополнительные сведения о приведении см. в неявных и явных преобразованиях (Visual Basic), приведении и преобразовании типов (Visual C#) или операторе приведения: () (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)); }
См. также
.NET Desktop feedback