访问 VBA - TreeView 控件 - AfterLabelEdit 事件

Posted

技术标签:

【中文标题】访问 VBA - TreeView 控件 - AfterLabelEdit 事件【英文标题】:Access VBA - TreeView Control - AfterLabelEdit Event 【发布时间】:2013-04-25 09:55:46 【问题描述】:

我的表单中有一个树视图控件。我希望能够编辑树中的节点并将更改推送到 Access DB。但是,我很难找到合适的活动。 MSDN treeview events reference page 建议 AfterLabelEdit,但我无法让它工作。有人知道任何解决方法/解决方案吗? 我使用的代码片段(我添加了 onClickonDblClick 进行比较,因为它们可以工作):

Private Sub xMyTreeview_Click() 'OK
 testit
End Sub
Private Sub xMyTreeview_DblClick() 'OK
 EditLabel
End Sub

Private Sub xMyTreeview_AfterLabelEdit() 'Problem
 AfterLabel
End Sub

Sub EditLabel()
 Me.xMyTreeview.StartLabelEdit
End Sub

Sub AfterLabel()
 MsgBox prompt, vbOKOnly, "afterlabel"
End Sub

Sub testit()
 Dim nodSelected As MSComctlLib.Node ' a variable for the currently selected node

 Set nodSelected = Me.xMyTreeview.SelectedItem ' get the currently selected node

 NodesStrLength = Len(nodSelected.Key)
 Dim NodeStr As String
 Dim StrToChange As String
 StrToChange = nodSelected.Key
 NodeStr = Mid(StrToChange, 2, NodesStrLength - 1)

 Me.txtNodeID = NodeStr
 Me.sfrmDOCNODE.Visible = True
End Sub

【问题讨论】:

【参考方案1】:

您的链接指向 .net Windows 窗体树视图,但 MSComctlLib 是较旧的 Visual Basic 通用控件:http://msdn.microsoft.com/en-us/library/aa443023(v=vs.60).aspx

注意事件原型不同;如果您不使用正确的参数声明它,它将永远不会被提出;

Private Sub object_AfterLabelEdit(cancel As Integer, newstring As String)

【讨论】:

非常感谢!这个答案在四月份解决了我的问题。

以上是关于访问 VBA - TreeView 控件 - AfterLabelEdit 事件的主要内容,如果未能解决你的问题,请参考以下文章

在 excel TreeView VBA 中编辑节点

VB treeview 中各控件的属性

关于的Delphi 的treeview控件的用法请教大家

delphi treeview控件读取INI文件。

C#中按钮点击后,treeview控件怎么选中指定节点?

如何在窗体初始化的时候就展开所有TreeView控件的所有节点