【问题标题】:Treeview node with more information包含更多信息的 Treeview 节点
【发布时间】:2018-03-27 16:13:57
【问题描述】:

我正在尝试自定义树视图节点中的信息,所以我创建了这个类

Public Class TreeViewItem
    Inherits TreeNode
    Private _text As String
    Private _id As String
    Private _Data As String

    Sub New(id As String, name As String, data As String)
        MyBase.New()
        _text = Name
        _id = id
        _Data = data

    End Sub

    Public Shadows Property Text As String

        Get
            If Not String.IsNullOrEmpty(_Data) Then
                Return String.Format("{0} -> {1}", _text, _Data)
            Else
                Return _text
            End If
        End Get
        Set(value As String)
            _text = Name
        End Set
    End Property
    Public Property ID As String
        Get
            Return _id
        End Get
        Set(value As String)
            _id = value
        End Set
    End Property

    Public Property Data As String
        Get
            Return _Data
        End Get
        Set(value As String)
            _Data = value
        End Set
    End Property

End Class

但是当我添加这样的节点时

tv.Nodes.Add(New TreeViewItem(1, "hello", "hi"))

节点的文本是空的,有什么帮助说明它为什么不渲染?

【问题讨论】:

    标签: .net vb.net winforms treeviewitem


    【解决方案1】:

    您几乎必须使用基类的 Text 属性,因此请尝试使用重载,以便您可以设置值:

    Public Overloads Property Text As String
      Get
        Return MyBase.Text
      End Get
      Set(value As String)
        _text = value
        If Not String.IsNullOrEmpty(_Data) Then
          MyBase.Text = String.Format("{0} -> {1}", value, _Data)
        Else
          MyBase.Text = value
        End If
      End Set
    End Property
    

    这会将您的构造函数更改为:

    Sub New(id As String, name As String, data As String)
      MyBase.New()
      _id = id
      _Data = data
      _text = name
      Me.Text = _text
    End Sub
    

    以及对您的 Data 属性的更新:

    Public Property Data As String
      Get
        Return _Data
      End Get
      Set(value As String)
        _Data = value
        Me.Text = _text
      End Set
    End Property
    

    【讨论】:

      猜你喜欢
      • 2020-08-28
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 2020-09-02
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多