Поделиться через


TreeNode.FromHandle(TreeView, IntPtr) Метод

Определение

Возвращает узел дерева с указанным дескриптором и назначенным указанному элементу управления представления дерева.

public:
 static System::Windows::Forms::TreeNode ^ FromHandle(System::Windows::Forms::TreeView ^ tree, IntPtr handle);
public static System.Windows.Forms.TreeNode FromHandle(System.Windows.Forms.TreeView tree, IntPtr handle);
public static System.Windows.Forms.TreeNode? FromHandle(System.Windows.Forms.TreeView tree, IntPtr handle);
static member FromHandle : System.Windows.Forms.TreeView * nativeint -> System.Windows.Forms.TreeNode
Public Shared Function FromHandle (tree As TreeView, handle As IntPtr) As TreeNode

Параметры

tree
TreeView

Объект TreeView , содержащий узел дерева.

handle
IntPtr

nativeint

Дескриптор узла дерева.

Возвращаемое значение

Объект, TreeNode представляющий узел дерева, назначенный указанному элементу управления с указанным TreeView дескриптором.

Примеры

Следующий пример кода получает свернутый TreeNode и создает копию, используя его Handle свойство. Исходный файл TreeNode удаляется из TreeNodeCollectionколлекции, а копия добавляется в коллекцию. В этом примере требуется, чтобы в TreeView нем был Form элемент управления. Элемент TreeView управления должен иметь два или более корневых узлов, каждый из которых имеет по крайней мере один дочерний узел.

private:
   void treeView1_AfterCollapse( Object^ /*sender*/, TreeViewEventArgs^ e )
   {
      // Create a copy of the e.Node from its Handle.
      TreeNode^ tn = TreeNode::FromHandle( e->Node->TreeView, e->Node->Handle );
      tn->Text = String::Concat( tn->Text, "Copy" );

      // Remove the e.Node so it can be replaced with tn.
      e->Node->Remove();

      // Add tn to the TreeNodeCollection.
      treeView1->Nodes->Add( tn );
   }
private void treeView1_AfterCollapse(object sender, TreeViewEventArgs e)
{
   // Create a copy of the e.Node from its Handle.
   TreeNode tn = TreeNode.FromHandle(e.Node.TreeView, e.Node.Handle);
   tn.Text += "Copy";
   // Remove the e.Node so it can be replaced with tn.
   e.Node.Remove();
   // Add tn to the TreeNodeCollection.
   treeView1.Nodes.Add(tn);
}
Private Sub treeView1_AfterCollapse(sender As Object, _
  e As TreeViewEventArgs) Handles treeView1.AfterCollapse
   ' Create a copy of the e.Node from its Handle.
   Dim tn As TreeNode = TreeNode.FromHandle(e.Node.TreeView, e.Node.Handle)
   tn.Text += "Copy"
   ' Remove the e.Node so it can be replaced with tn.
   e.Node.Remove()
   ' Add tn to the TreeNodeCollection.
   treeView1.Nodes.Add(tn)
End Sub

Комментарии

При добавлении TreeView.Nodes узла в коллекцию TreeView элемент управления отправляет уведомление NM_CUSTOMDRAW до доступности дескриптора узла. Если переопределить WndProc метод предоставления пользовательского TreeView документа в ответ на это уведомление, необходимо всегда проверять возвращаемое значение этого метода null , прежде чем пытаться получить доступ к узлу.

Применяется к

См. также раздел