日期:2014-05-20  浏览次数:20771 次

树型控件的使用和技巧?
如果愿意,请在这里写一些你的使用经验,以共大家学习学习,谢谢了!

------解决方案--------------------
sf,gz
------解决方案--------------------
//使用鼠标右键选中节点
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
((TreeView)sender).SelectedNode = e.Node;
}

单击编辑节点
//Node有BeginEdit()方法可以激活编辑状态
//但在NodeMouseClick事件里处理会无效
//估计是消息没有处理完毕
//利用时间器跳出消息处理的堆栈实现

private void timer1_Tick(object sender, EventArgs e)
{
((Timer)sender).Enabled = false;
if (treeView1.SelectedNode != null)
treeView1.SelectedNode.BeginEdit();
}

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
timer1.Interval = 10;
timer1.Enabled = true;
}

------解决方案--------------------
2003中的TreeNode比2005中的功能差了很多,我的做法是自己写一个NewTreeNode类,继承自TreeNode类,这样就可以在使用中自己定义NewTreeNode的功能了,还保留了原来的功能,例如:
public class NewTreeNode : TreeNode
{
private string textTip;
public string TextTip{ get {return textTip ;} set { textTip = value;} }
public NewTreeNode( string text ) : base()
{ this.textTip = text }
}

这样在2003中的使用NewTreeNode类也可以带有2005中的提示功能了。只是在使用时要强行转换一下而已