设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2024|回复: 15
打印 上一主题 下一主题

[窗体] 如何实现树不可直接编辑?

[复制链接]
跳转到指定楼层
1#
发表于 2008-4-13 09:34:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我发现树可以直接编辑。。
我想实现,不可以直接在树上进行更改名称。。
在属性里,或是代码里要怎么设置???????

。。

[ 本帖最后由 goto2008 于 2008-4-13 09:38 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-4-13 10:19:14 | 只看该作者
tree1.LabelEdit=false
目录树的标签编辑属性进行设定就可以了
3#
发表于 2008-4-13 10:25:15 | 只看该作者
树 默认是不可编辑的  你是否在代码里进行设置
4#
 楼主| 发表于 2008-4-13 10:37:54 | 只看该作者
两个问题:
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

点击这里给我发消息

5#
发表于 2008-4-13 11:08:45 | 只看该作者
在属性里设置
6#
发表于 2008-4-13 11:13:50 | 只看该作者
是我写快了,labeledit属性是可以修改的,但不是布尔值,而是两个常量,
0—tvwAutomatic  为默认表示允许修改节点
1—tvwManual  表示不可修改节点
LabelEdit 属性
用来指定或返回 TreeView 控件节点是否可以由用户来修改。

语法
object.LabelEdit [ = value ]

点击这里给我发消息

7#
发表于 2008-4-13 11:15:02 | 只看该作者

第二个问题

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
8#
发表于 2008-4-13 11:25:53 | 只看该作者
不知道小宝要问什么?是问蓝色部分代码的意思?

点击这里给我发消息

9#
发表于 2008-4-13 11:27:26 | 只看该作者
是解决4楼的第二个问题
10#
发表于 2008-4-13 11:34:46 | 只看该作者
用了循环语句,也就是说她展开了所有节点包括子节点,不用循环就可以了
再就是语句加入了被选节点,Me.tv.Nodes(tv.Nodes.Count).Selected = True 该语句中tv.Nodes.Count是指记录数,这样的话被选节点就跑到后面去了

就你给的代码来看,建议不用循环,再就是去掉只定被选节点语句就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-10 20:18 , Processed in 0.252905 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表