Foros del Web » Programación para mayores de 30 ;) » .NET »

Listbox VB.Net 2005

Estas en el tema de Listbox VB.Net 2005 en el foro de .NET en Foros del Web. He tenido problemas para seleccionar un valor Seleccionado en un listbox. Lo que quiero hacer es : Mediante un dataReader he llenado un array Utilizando ...
  #1 (permalink)  
Antiguo 06/02/2007, 11:49
Avatar de JonhyReyes  
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 3 meses
Puntos: 1
Busqueda Listbox VB.Net 2005

He tenido problemas para seleccionar un valor Seleccionado en un listbox.

Lo que quiero hacer es : Mediante un dataReader he llenado un array Utilizando una clase, ese array me ha servido para llenar un listbox y le he asignado un DisplayMember y un value member.

Despues en el evento click o el evento SelectedValueChanged tengo que llenar un Listbox Subordinado en base al SelectedValue del List que llene anteriormente. La clase que utilice es esta:

Public Class MyListItem
Private VerText As String
Private ValorText As String

Public Sub New()
MyBase.New()
VerText = ""
ValorText = ""
End Sub

Public Sub New(ByVal Display As String, ByVal Valor As String)
MyBase.New()
VerText = Display
ValorText = Valor
End Sub

Public Property Ver() As String
Get
Return VerText
End Get
Set(ByVal Value As String)
VerText = Value
End Set
End Property

Public Property Valor() As String
Get
Return ValorText
End Get
Set(ByVal Value As String)
ValorText = Value
End Set
End Property
End Class

y para llenar el Primer Listbox hice lo siguiente

While SqlRead.Read
'Los dos parametros del Costructor son "Ver" y "Valor"
nItem = New MyListItem("Molienda N°: " & SqlRead.GetValue(0) & " ---------> Estado: " & SqlRead.GetValue(1), SqlRead.GetValue(0))
IList.Add(nItem.Imprimir)
End While
SqlRead.Close()

Me.LstMolC.DisplayMember = "Ver"
Me.LstMolC.ValueMember = "Valor"
Me.LstMolC.Items.AddRange(IList.ToArray())

El problema es que el Selectedvalue del listbox lleno queda a Nothing, cuando he asignado un ValueMember.

Gracias por su tiempo y por su ayuda
  #2 (permalink)  
Antiguo 06/02/2007, 14:43
Avatar de davidel  
Fecha de Ingreso: noviembre-2006
Mensajes: 17
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Listbox VB.Net 2005

Tienes que tener en cuenta que la propiedad SelectedValue solo está disponible si la carga del ListBox la haces mediante la propiedad DataSource del mismo. Por lo tanto te aconsejaría el siguiente código:

Me.LstMolC.DisplayMember = "Ver"
Me.LstMolC.ValueMember = "Valor"
Me.LstMolC.DataSource = reader;

Si estas utilizando Visual Studio 2003 no tendrás ningún problema al hacer el binding de tu control al DataReader. En caso de que utilices VS 2005 deberás hacerlo de la siguiente manera (mediante un objeto BindingSource)

Dim binding As New BindingSource(reader, String.Empty)
Me.LstMolC.DisplayMember = "Ver"
Me.LstMolC.ValueMember = "Valor"
Me.LstMolC.DataSource = binding
  #3 (permalink)  
Antiguo 06/02/2007, 16:05
Avatar de JonhyReyes  
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Listbox VB.Net 2005

Gracias por tu ayuda

Exactamente es lo que hice, estableci el datasource y ahora si ya tengo el Selectedvalue.

Gracias y saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:12.