En .NET estas propiedades ya no existen. Para solucionarlo, tenemos que ampliar estos controles para poder disponer de la misma funcionalidad. En esta entrada, voy a explicar cómo hacerlo para estos dos objetos, aunque lo podríamos hacer para todos los objetos que deseemos.
Ampliar funcionalidades para ListView
Nos creamos una clase (en mi caso se llamará TListItem) e introducimos este código:
Imports System.Windows.Forms Public Class TListItem Inherits ListViewItem Private m_Key As Object Public Property Key() As Object Get Return m_Key End Get Set(ByVal value As Object) m_Key = value End Set End Property Public Sub New(Optional ByVal Key As Object = vbNullString) m_Key = Key End Sub End ClassPara cargar el ListView, simplemente haría falta añadir esta nueva clase que nos hemos creado:
loItem = New TListItem loItem.Key = "nuestraclave" loItem.Text = "Texto de inicio" loItem.SubItems.Add("Subitem") lsvLista.Items.Add(loItem)
Para tratarlo después, sólo hace falta convertir el elemento ListViewItem en el nuevo TListItem para poder acceder a los datos ampliados:
Msgbox CType(lsv.SelectedItems(0), TListItem).KeyAmpliar funcionalidades para ComboBox
Nos creamos una clase (en mi caso se llamará TCombo) e introducimos este código:
Public Class TCombo Private m_Key As Object Private m_Valor As String Public Sub New(ByVal Key As Object, ByVal Valor As String) m_Key = Key m_Valor = Valor End Sub Public Overrides Function ToString() As String Return m_Valor End Function Public ReadOnly Property Key() As Object Get Return m_Key End Get End Property End ClassPara cargar el ComboBox, simplemente haría falta añadir esta nueva clase que nos hemos creado:
cboCombo.Items.Add(New TCombo("nuestraclave", "Texto del combo"))Para obtener la key del elemento seleccionado del combo.
Msgbox CType(cboCombo.SelectedItem, TCombo).KeyEspero que sea de utilidad.
No hay comentarios:
Publicar un comentario