当添加TV的节点时,如果没有输入节点名,则TV的编辑框失去焦点以后,该节点自动删除。如果用户输入了节点名称,则将节点名称保存到数据库里。我原以为可以在TV的AfterLabelEdit事件里判断节点节点名是否为空,但当用户什么都没输入时,并不激发AfterLabelEdit事件。但CodeLib .NET就有这个功能,不知道大家用过这个软件没有?它是如何实现的?

解决方案 »

  1.   

    简单点可以加个Timer来判断~Option ExplicitPrivate Sub Form_Load()
        Dim nodX As Node
        Set nodX = TreeView1.Nodes.Add(, , "R", "Root")
        Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1")
        Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2")
        Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3")
        Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4")
        nodX.EnsureVisible
        TreeView1.Style = tvwTreelinesText '样式 4。
        TreeView1.BorderStyle = vbFixedSingle
    End SubPrivate Sub Command1_Click()
        Static t As Integer
        
        t = t + 1
        
        Dim nodX As Node
        Set nodX = TreeView1.Nodes.Add(TreeView1.SelectedItem.Key, tvwChild, "T_" & t, "输入数据")
        nodX.EnsureVisible
        
        Set TreeView1.SelectedItem = nodX
        TreeView1.StartLabelEdit
        
        Timer1.Interval = 50
        Timer1.Enabled = True
    End SubPrivate Sub Timer1_Timer()
        If TreeView1.SelectedItem.Text = "" Then
            TreeView1.Nodes.Remove (TreeView1.SelectedItem.Index)
            Timer1.Enabled = False
        End If
    End Sub