我有一堆带有一堆节点的TreeView。我有一些应该修改标签的代码,但它没有任何效果。当我在调试器中单步执行它时,我看到.Text属性具有正确的值,但它没有反映在GUI中。我不确定我做错了什么。这是代码:
Public Class MyClass
Inherits TreeNode
Public Property Record As SomeTypeThatDefinesADataField
Get ...
Set ...
End Property
Public Sub ChangeLabel()
If Me.TreeView IsNot Nothing Then
Me.TreeView.LabelEdit = True
If Not Me.IsEditing Then
Me.BeginEdit()
End If
Me.Text = Me.Record.Data("Name")
Me.EndEdit(False)
Me.TreeView.LabelEdit = False
End If
End Sub
End Class
Public Class MyClassThatContainsTheTreeView
Private Sub trvRecords_AfterLabelEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.NodeLabelEditEventArgs) Handles trvRecords.AfterLabelEdit
Me.treeView.Refresh()
End Sub
End Class
答案 0 :(得分:2)
跳过LabelEdit箍是没有意义的,只需更改Text属性即可。在调试器中看到属性更改而不是在屏幕上看到的典型诊断是您获得了错误的对象引用。更改不可见的副本而不是用户正在查看的副本。您还不清楚如何在此代码段中获取TreeView或Form引用,请查看您的代码。