我在dragenter事件中用
Point targetPoint = treeViewMain.PointToClient(Point(e.X, e.Y));
TreeNode dstNode = treeViewMain->GetNodeAt(targetPoint));
好像不顶事
Point targetPoint = treeViewMain.PointToClient(Point(e.X, e.Y));
TreeNode dstNode = treeViewMain->GetNodeAt(targetPoint));
好像不顶事
private: System::Void treeViewMain_DragOver(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) {
//得到拖拽目的节点
Point targetPoint = this->treeViewMain->PointToClient(Point(e->X, e->Y));
myTreeNode ^dstNode = safe_cast<myTreeNode ^>(this->treeViewMain->GetNodeAt(targetPoint)); //得到拖拽源节点(ok)
myTreeNode ^srcNode=safe_cast<myTreeNode ^>(e->Data->GetData("myTreeNode")); if(!myTreeNode::determineDrag(srcNode,dstNode))
{
e->Effect=DragDropEffects::None;
}
else
{
this->treeViewMain->SelectedNode=dstNode;
e->Effect=DragDropEffects::Move;
}
}
};