La utilización de estos dos objetos es similar, ya que como hemos dicho cambia la forma de exponer los datos, pero no la de utilizarlos.
En
estos objetos para comprender su utilización hay que comprender cual es su
filosofía.
Estos dos objetos, combobox y listbox, lo que almacenan en su interior no es información en realidad, si no que lo que hacen es almacenar objetos que representan datos.
Hay que tener presente que a nivel de programación, una cosa es lo que el usuario necesita y otra lo que necesitamos a nivel de programa.
El usuario necesita la denominación de un dato para facilitar la selección del mismo, pero a nosotros no nos interesa la denominación del mismo, si no su código.
Por lo tanto hay que combinar ambas necesidades, y eso lo hacemos en el momento de incorporar los datos al objeto en cuestión.
Lo que se hace, teniendo en cuenta que lo que se gestiona en el listbox y en el combobox, son objetos, es crear un objeto que por un lado incorpore la denominación pero por otro a nosotros nos permita conocer su código.
Así que desarrollamos una clase que nos permita generar un objeto que contenga los dos datos, el código y la denominación.
Private Class Combo_List
Private Denom As String
Private Codig As String
' Inicialización del objeto
Public Sub New(ByVal Descripcion As String, _
ByVal Codigo As String)
Denom = Descripcion
Codig = Codigo
End Sub
' Devuelve la denominación
Public Overrides Function ToString() As String
Return Denom
End Function
' Devuelve el código
Public Function Codigo() As String
Return Codig
End Function
Public Function Denominacion() As String
Return Denom
End Function
End Class
Una vez que disponemos de una clase que nos permite generar objetos de la forma que nos interesa a nosotros, lo que queda es añadir objetos de esa clase a la colección de objetos del listbox o del combobox.
Dim Objeto As Combo_Lista
Objeto = New Combo_Lista(Denom,Codigo)
Combo.Items.Add(Objeto)
La explicación es la siguiente.
Dim Objeto As Combo_Lista
Definimos un objeto del tipo Combo_Lista, la clase que hemos creado antes.
Objeto = New Combo_Lista(Denom,Codigo)
Creamos una instancia del objeto incorporándole en su constructor el código y la denominación del dato que deseamos incorporar al ComboBox o ListBox.
Combo.Items.Add(Objeto)
Y después solo hay que añadirlo a la colección de objetos del ComboBox.
Denom y Codigo representan las variables que contienen los datos que nos interesa incorporar al objeto.
Una vez que disponemos de la colección cargada los objetos, los datos, pueden verse en el combo o en el listbox.
El siguiente paso es recuperar los datos que hay en los mismos.
Podemos hacerlo con el siguiente código.
Dim Nacion As Combo_Lista
Nacion = CType(ComboBox.SelectedItem, Combo_Lista)
Codigo = Nacion.Codigo
La explicación es la siguiente.
Dim Nacion As Combo_Lista
Creamos un objeto del mismo tipo que hemos incorporado al ComboBox.
Nacion = CType(ComboBox.SelectedItem, Combo_Lista)
Recuperamos el elemento seleccionado en el ComboBox, que nos lo proporciona SelectedItem.
Codigo = Nacion.Codigo
Después solo queda asignar a la variable que nos interese el valor del código.
Utilizando el método Count de las colecciones disponibles podemos saber cuantos elementos hay en la colección de objetos, o en la de seleccionados.
Cuantos = Lista.Ítems.Count
Para ello se utiliza el método clear en cualquiera de los dos objetos.
ListaNueva.Items.Clear()
Disponemos de los métodos Remove y RemoveAt, en cualquiera de los dos objetos.
La sintaxis es la que sigue.
Combo.Items.RemoveAt(2)
Combo.Items.RemoveAt(Combo.SelectedIndex)
O bien
Lista.Items.Remove
Lista.Items.Remove(Lista.SelectedItem)
Con RemoveAt eliminamos el elemento que se indica en el argumento como índice.
Con Remove se elimina el objeto que se indica.
Síguenos en: Facebook Sobre aulaClic Política de Cookies