Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

Treeview树控件属性事件的2个小问题

浪淘沙  发表于:2012-02-10 16:12:44  
复制

Treeview树控件属性事件的2个小问题

之前也是在网上学的不怎么系统,都是一些常用的东西,没有看到特别完整全面的介绍资料。想起来问2个问题

1.除了控件属性中看到的5个事件,还有哪些事件可用,在哪里查找。

2.如果LableEdit 属性为1,可以更改窗体上NODE.TEXT的字符,有没有通过什么事件响应同步更新到数据库。通过制作自定义菜单添加编辑功能不用介绍,想看看树控件自身有没有提供什么简单的办法。

 

Top
叶海峰 发表于:2012-02-10 16:22:48



浪淘沙 发表于:2012-02-10 16:40:04

谢谢叶海峰,插入的控件是有点不一样,一直没往这上面想。呵呵

另外再追问一个问题,如果节点标签的内容更改了,如何获得呢。用下面的代码取得还桑原来的Text

Private Sub TreeView0_AfterLabelEdit(Cancel As Integer, NewString As String)
Dim strText As String
Dim strDepartmentID As Long
Dim strSQL As String

If TreeView0.SelectedItem.key = "S" Then
   Exit Sub
Else
strText = TreeView0.SelectedItem.Text
 Debug.Print strText
strDepartmentID = Right(TreeView0.SelectedItem.key, Len(TreeView0.SelectedItem.key) - 1)
strSQL = "update tbl销售部门 set 销售部门 = '" & strText & "' where 销售部门ID = " & strDepartmentID & ";"
Debug.Print strSQL
CurrentDb.Execute strSQL
End If
End Sub

 



叶海峰 发表于:2012-02-10 16:53:09
看看Private Sub TreeView0_AfterLabelEdit(Cancel As Integer, NewString As String),这个NewString参数返回什么内容


浪淘沙 发表于:2012-02-10 21:09:47

干了一整天,下午脑子也糊涂了,晚上刚喝完酒反而明白了,哈哈!这个参数是需要赋值的,动态更改是没可行性了,有老法师指教了,我也不钻牛角尖了,安安心心自己写代码啦,有机会回广州时一起喝个酒啊,我是广州出来的。



浪淘沙 发表于:2012-02-10 22:06:00

继续补充新情况,真是酒喝多了简单考虑就结贴了,回头周按叶海峰老师的提议,看了一下NewString的返回值果真的是更改后的新值,哈哈,这个类似于鼠标事件中的自动取值,省事了,这样的话可以直接在控件上修改了,操作直观性好了很多。如果是有权限表控制的话,可以根据权限表给 LableEdit 属性动态赋值就可以了,可以省些人工了。代码如下

Private Sub TreeView0_AfterLabelEdit(Cancel As Integer, NewString As String)

Dim strText As String
Dim strDepartmentID As Long
Dim strSQL As String

'debug.print NewString
If TreeView0.SelectedItem.key = "s" Then      '根目录不可删除
   Exit Sub
Else
strDepartmentID = Right(TreeView0.SelectedItem.key, Len(TreeView0.SelectedItem.key) - 1)
strSQL = "update tbl销售部门 set 销售部门 = '" & NewString & "' where 销售部门ID = " & strDepartmentID & ";"      '直接取更改后的新值NewString

CurrentDb.Execute strSQL
End If
End Sub

最近手里有活,等结束了我做个示例给学友分享。

 



总记录:5篇  页次:1/1 9 1 :