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);
static member FromHandle : System.Windows.Forms.TreeView * nativeint -> System.Windows.Forms.TreeNode
Public Shared Function FromHandle (tree As TreeView, handle As IntPtr) As TreeNode
Параметры
- handle
-
IntPtr
nativeint
Дескриптор узла дерева.
Возвращаемое значение
Объект TreeNode, который предоставляет узел дерева, назначенный указанному элементу управления TreeView, с заданным дескриптором.
Примеры
В следующем примере кода возвращается свернутый TreeNode и создается копия с помощью его Handle свойства. Исходный файл TreeNode удаляется из TreeNodeCollectionколлекции, а копия добавляется в коллекцию. В этом примере требуется, чтобы у вас был Form TreeView элемент управления. Элемент 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 коллекцию элемент управления отправляет уведомление NM_CUSTOMDRAW до того, TreeView как дескриптор узла будет доступен. При переопределении WndProc метода предоставления пользовательского TreeView документа в ответ на это уведомление следует всегда проверять возвращаемое значение этого метода null
, прежде чем пытаться получить доступ к узлу.