树里面有单击事件,单击某个节点后,事件就激发。当然,你还需要自己写代码来判断具体是哪个节点被单击。我的代码给你作个参考
int id1 = 0, id2 = 0;
//id1为根节点序号,id2为夺级节点序号
TreeNode tn = new TreeNode();
tn = treeView1.SelectedNode;
int lev = getlev(tn); //当前选中节点所在层数
id1 = Convert.ToInt32(tn.Parent.Name); //获取根节点序号
id2 = Convert.ToInt32(tn.Name); //获取二级节点序号
public int getlev(TreeNode tn) //计算当前选中节点所在层数
{
if (tn.Parent != null) //当前节点有父节点
{
return node_level + getlev(tn.Parent) + 1;
}
else
return 1;
}
事件里应该可以找得到双击事件吧.
[/QUOTE]
双击事件当然找得到,但那是针对整个treeview的不是针对单个节点的。
感谢cobby的代码,虽然那不能解决我的问题。我又查了很多资料,最后我得出的触发节点单击事件的是这样的:
[CODE]private Point pi; //用pi记录光标所在的位置
private void treeView1_MouseMove(object sender, MouseEventArgs e) //得到光标所在的位置
{
pi = new Point(e.X, e.Y);
}
private void treeView1_DoubleClick(object sender, EventArgs e) //从光标所在的位置得到该位置上的节点
//由此触发节点双击事件
{
TreeNode node = this.treeView1.GetNodeAt(pi);
if (pi.X < node.Bounds.Left || pi.X > node.Bounds.Right)
{
textBox1.Text = "不触发事件";
}
else
{
textBox1.Text = "触发事件";
}
}[/CODE]
我的大致思路就是这样,不知道大家有没有更好的方法。