Office中国论坛/Access中国论坛

标题: 如何实现树不可直接编辑? [打印本页]

作者: goto2008    时间: 2008-4-13 09:34
标题: 如何实现树不可直接编辑?
我发现树可以直接编辑。。
我想实现,不可以直接在树上进行更改名称。。
在属性里,或是代码里要怎么设置???????

。。

[ 本帖最后由 goto2008 于 2008-4-13 09:38 编辑 ]
作者: tanhong    时间: 2008-4-13 10:19
tree1.LabelEdit=false
目录树的标签编辑属性进行设定就可以了
作者: andymark    时间: 2008-4-13 10:25
树 默认是不可编辑的  你是否在代码里进行设置
作者: goto2008    时间: 2008-4-13 10:37
两个问题:
1、想实现树不可直接编辑。
2、点击“CmdExpend”按扭,问题是,它会滚到最下面,,我不想让树滚到最下面。
展开树时,,树里的记录焦点在最上面。。

============================================
Option Compare Database
Option Explicit
Dim blnEx As Boolean '这句用于树的展开收缩

===================================
Private Sub CmdExpend_Click()       '这句用于树的展开收缩按扭
On Error GoTo Err_CmdExpend_Click
    Dim i As Integer

    blnEx = Not blnEx

    If blnEx Then
        For i = 1 To tv.Nodes.Count
            tv.Nodes(i).Expanded = True    '展开所有节点
        Next i
        Me.CmdExpend.Caption = "收起-针车工人目录"
    Else
        For i = 1 To tv.Nodes.Count
            tv.Nodes(i).Expanded = False   '收起所有节点
        Next i
        Me.CmdExpend.Caption = "展开-针车工人目录"
    End If

Exit_CmdExpend_Click:
    Exit Sub

Err_CmdExpend_Click:
    MsgBox Err.Description
    Resume Exit_CmdExpend_Click
End Sub

========================================================
Private Sub Form_Load()

Dim cn As ADODB.Connection
    Dim rcd As New ADODB.Recordset
    Dim k As Integer, i As Integer
    Set cn = CurrentProject.Connection
    Dim TempNode As Node

On Error GoTo Err:

  '  Set TempNode = Me.tv.Nodes.Add(, , "a", "鞋厂车位员工列表", 1, 3)
    If Nz(DLookup("[工人编号]", "工人"), 0) <> 0 Then
        rcd.Open "SELECT left(工人编号,2) as a FROM 工人 group by left(工人编号,2) ORDER BY left(工人编号,2) Asc", cn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
        rcd.MoveFirst
        While Not rcd.EOF
            Set TempNode = tv.Nodes.Add(, , rcd![a], rcd![a], 3, 2)
            rcd.MoveNext
        Wend
        rcd.Close
        
        rcd.Open "SELECT left(工人编号,2) as a,工人编号,工人姓名 FROM 工人 group by left(工人编号,2),工人编号,工人姓名 ORDER BY left(工人编号,2) Asc", cn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
        rcd.MoveFirst
        While Not rcd.EOF
            Set TempNode = tv.Nodes.Add(CStr(rcd(0)), tvwChild, rcd![工人编号], rcd![工人编号] & ":" & rcd![工人姓名], 3, 2)
            rcd.MoveNext
        Wend
        rcd.Close
        
    End If
Err:
   Debug.Print Err.Number, Err.Description
   Exit Sub
End Sub
作者: tmtony    时间: 2008-4-13 11:08
在属性里设置
作者: tanhong    时间: 2008-4-13 11:13
是我写快了,labeledit属性是可以修改的,但不是布尔值,而是两个常量,
0—tvwAutomatic  为默认表示允许修改节点
1—tvwManual  表示不可修改节点
LabelEdit 属性
用来指定或返回 TreeView 控件节点是否可以由用户来修改。

语法
object.LabelEdit [ = value ]
作者: t小宝    时间: 2008-4-13 11:15
标题: 第二个问题
Private Sub CmdExpend_Click()       '这句用于树的展开收缩按扭
On Error GoTo Err_CmdExpend_Click
    Dim i As Integer

    blnEx = Not blnEx

    Me.tv.SetFocus

    If blnEx Then
        For i = 1 To tv.Nodes.Count
            tv.Nodes(i).Expanded = True    '展开所有节点
        Next i
        Me.CmdExpend.Caption = "收起-针车工人目录"

        Me.tv.Nodes(tv.Nodes.Count).Selected = True

    Else
        For i = 1 To tv.Nodes.Count
            tv.Nodes(i).Expanded = False   '收起所有节点
        Next i
        Me.CmdExpend.Caption = "展开-针车工人目录"
    End If

    Me.tv.Nodes(1).Selected = True

Exit_CmdExpend_Click:
    Exit Sub

Err_CmdExpend_Click:
    MsgBox Err.Description
    Resume Exit_CmdExpend_Click
End Sub
作者: tanhong    时间: 2008-4-13 11:25
不知道小宝要问什么?是问蓝色部分代码的意思?
作者: t小宝    时间: 2008-4-13 11:27
是解决4楼的第二个问题
作者: tanhong    时间: 2008-4-13 11:34
用了循环语句,也就是说她展开了所有节点包括子节点,不用循环就可以了
再就是语句加入了被选节点,Me.tv.Nodes(tv.Nodes.Count).Selected = True 该语句中tv.Nodes.Count是指记录数,这样的话被选节点就跑到后面去了

就你给的代码来看,建议不用循环,再就是去掉只定被选节点语句就可以了
作者: goto2008    时间: 2008-4-13 11:53
谢谢小宝大哥,第二个问题解决了。。。。

第一个问题。。。要设置哪个属性了?王站长能说得更详细些吗。

[ 本帖最后由 goto2008 于 2008-4-13 11:59 编辑 ]
作者: tanhong    时间: 2008-4-13 12:00
[attach]29603[/attach]

红框部分就是,修改为 1 ,则不允许修改了
作者: tanhong    时间: 2008-4-13 12:11
原帖由 t小宝 于 2008-4-13 11:15 发表




[:46] 哈哈!是我乱点鸳鸯谱了~~~~~

小宝是帮着解决问题,我还以为是提问!!!![:45]

[ 本帖最后由 tanhong 于 2008-4-13 12:13 编辑 ]
作者: t小宝    时间: 2008-4-13 12:30


关于属性,在设计视图用右键点树控件,再点 TreeCtrl 对象 --  属性
作者: goto2008    时间: 2008-4-13 14:51
可以了,谢谢江羽和小宝大哥
作者: marlsq    时间: 2008-9-4 11:17
学习学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3