如何修改.NET中的标签(Text属性)或TreeNode

时间:2011-02-22 15:03:14

标签: .net vb.net winforms treeview treenode

我有一堆带有一堆节点的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

1 个答案:

答案 0 :(得分:2)

跳过LabelEdit箍是没有意义的,只需更改Text属性即可。在调试器中看到属性更改而不是在屏幕上看到的典型诊断是您获得了错误的对象引用。更改不可见的副本而不是用户正在查看的副本。您还不清楚如何在此代码段中获取TreeView或Form引用,请查看您的代码。