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

Text プロパティを変更するだけです。プロパティの変更がデバッガーに表示されているのに画面に表示されていない場合の典型的な診断は、間違ったオブジェクト参照を取得したことです。ユーザーが見ているコピーではなく、見えないコピーを変更する。このコード スニペットで TreeView または Form 参照をどのように取得したかはまったく明確ではありません。コードを確認してください。

于 2011-02-22T15:30:52.327 に答える