1

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

1 回答 1

2

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

于 2011-02-22T15:30:52.327 回答