关于Winform Tree,如何将鼠标移到文本时显示Hand,移出时还原?
private void tree_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e)
{
tree.Cursor = Cursors.Hand;
}
private void tree_MouseMove(object sender, MouseEventArgs e)
{
TreeNode tn = this.tree.GetNodeAt(e.X, e.Y);
if (tn == null)
{
Cursor = Cursors.Default;
}
}
代码如上,我想当鼠标离开文本的时候,鼠标还原,而上述的程序在鼠标离开文本的时候并且hover在与文本水平的位置上时,鼠标也是手状的,而我只是想鼠标hover到文本时,才显示手状。
大家可以看看Windows OS Explorer的效果。
请问如何修改上面的代码啊?谢谢~~
------解决方案--------------------
C# code
private void treeView1_MouseLeave(object sender, EventArgs e)
{
Cursor.Current = Cursors.Default;
}
private void treeView1_MouseMove(object sender, MouseEventArgs e)
{
TreeNode node = this.treeView1.GetNodeAt(e.Location);
if (node == null)
{
Cursor.Current = Cursors.Default;
return;
}
Cursor.Current =
e.X < node.Bounds.Left || e.X > node.Bounds.Right ?
Cursors.Default : Cursors.Hand;
}