treeview的labeledit已经设置为true,
现在我的问题,当我点击一个节点,该节点被选择,同时的它的text处于可编辑的状态.
不知道能不能实现?????

解决方案 »

  1.   

    lz:设置labeledit已经设置为true就行了,只是你点击的时候不能点击太快,否则会当成双击事件处理,不会处于编辑状态,一般需要点击两次左右,中间有一定时间间隔,你试试
      

  2.   

    sdl2005lyx() ( ) 信誉:100    Blog 
    我的意思是,不点击两次,比如当前是选中节点状态,我点击另外一个按钮,这个节点的text处于可编辑状态,不知道可以吗??
      

  3.   

    这样不可以,道理很简单,对任何控件,包括textbox,(选中的话)第一次都是处于选中状态,需要第二次才处于编辑状态,再说,你多做一次点击,也很正常 啊,用户也自然接受,为什么非要钻技术的牛角尖呢???
      

  4.   

    回:
    sdl2005lyx() ( ) 信誉:100    Blog 
    我现在就采用你说的方式,但是很容易出问题,多变换几次节点一不小心,text就是可编辑状态,
    造成节点名字""的情况.我想在想实现,windows那样,右键点击"重命名",这个时候text才可以编辑,更加符合我们在操作windows上的情况
      

  5.   

    设置labeledit已经设置为true就行了,就像你给你个文件夹改名字一样,两次点击不能太快了,否则就成了双击了。
      

  6.   

    //Node有BeginEdit可以激活编辑状态
    //但如果在NodeMouseClick事件里处理会无效
    //估计是消息没有处理完毕
    //利用时间器跳出消息处理的堆栈实现private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
        timer1.Interval = 10;
        timer1.Enabled = true;
    }private void timer1_Tick(object sender, EventArgs e)
    {
        timer1.Enabled = false;
        if (treeView1.SelectedNode != null)
            treeView1.SelectedNode.BeginEdit();
    }
      

  7.   


    非常感谢:zswang(伴水清清)(专家门诊清洁工) ( )
      

  8.   

    lz说得也有道理,我简化一下zswang(伴水清清)(专家门诊清洁工)的代码:
            private void button1_Click(object sender, EventArgs e)
            {
                treeView1.SelectedNode = treeView1.Nodes[2];//这里你自己处理你选择的节点            if (treeView1.SelectedNode != null)
                    treeView1.SelectedNode.BeginEdit();
            }
      

  9.   

    我做个简单的程序。是用CONTEXTMENU菜单来做。
    private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    System.Drawing.Point p=new Point(e.X,e.Y);
    TreeNode tr=this.treeView1.GetNodeAt(p);
    this.treeView1.SelectedNode=tr; } private void menuItem1_Click(object sender, System.EventArgs e)
    {
    this.treeView1.LabelEdit=true;
    if(!this.treeView1.SelectedNode.IsEditing)
    {
    this.treeView1.SelectedNode.BeginEdit();
    } }
    这两个方法加入程序中。应该能可以的。试试