日期:2014-05-18  浏览次数:21003 次

鼠标拖曳的状态下,在treeView上实现悬停。并在某一个节点上悬停3秒,则打开此节点下的节点
鼠标拖曳的状态下,在treeView上实现悬停。并在某一个节点上悬停3秒,则打开此节点下的节点。

就像windows的文件夹拖曳的效果一样。

------解决方案--------------------
沙发一下,帮忙顶

------解决方案--------------------
TreeView t = new TreeView();
Point pt = t.PointToClient(Control.MousePosition);
TreeNode node = t.GetNodeAt(pt);
if (node != null)
{
node.Expand();
}
------解决方案--------------------
我觉得没有必要一定要等3秒,能做到如下的就应该可以了:

private void treeView1_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
Point pt = new Point(e.X, e.Y);
pt = this.treeView1.PointToClient(pt);
TreeNode node = this.treeView1.GetNodeAt(pt);
if (node != null)
{
node.Expand();
}
}

------解决方案--------------------
DragOver上开一个计时器呗, 三秒后

TreeNode node = this.treeView1.GetNodeAt(pt);
if (node != null)
{
node.Expand();
}