CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Como Usar El Selectedobjectcollection Del Listbox

(1/1)

Thanatos-chan:
Saludos a todos los miembros, anteriormente habia entrado a el foro a leer info, pero me decidi en registrame el la pagina. asi que  :hola:  a todos.

pues bien ahora estoy en aprendizaje de visual basic.net y mientras hacia un programa se me presento esta situacion.


--- Código: Text ---Public Class Form1    Dim i As Integer       Private Sub btn_agregar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_agregar.Click        lst_A.Items.Add(txt_Numero.Text)        txt_Numero.Text = ""        txt_Numero.Focus()     End Sub     Private Sub btn_eleminar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_eleminar.Click        If lst_A.SelectedIndex <> -1 Then            lst_A.Items.Remove(lst_A.SelectedItem)        End If    End Sub     Private Sub btn_insertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_insertar.Click        For i = 0 To lst_A.SelectedIndices.Count - 1             lst_A.Items.Insert(i, txt_Numero.Text)        Next    End SubEnd Class 
en este programa intento insertar y eliminar elementos en la posicion seleccionada
no tengo problemas eleminando pues parece que BV.net rueda el indice una vez eliminado el elemento. el lio esta en cuando quiero insertar un elemento justo debajo del elemento que tengo selecionado en el listbox EJ:

si tengo en el listbox 1,2,3 con los indices 1,2,3 y quiero insertar el 4 entre el 2 y el 3 y que los indices rueden me ha dejado colgado.

para eso he querido usar el selectedObjectCollection, pero tengo la duda si tengo que debo usar los elementos para adicionar o los indices.

cualquier ayuda me caeria super.

P.D deje el codigo incompleto ya que en el boton insertar es que quiero usar el selectedobjectcollection

Thanatos-chan:
Hola a la gente de este foro anteriormente habia publicado el tema de arriba y al parcer daba muchos problemas dado que nadie me pudo decir nada, pero despues de visitar muchas paginas y un poco de ayuda he aqui el programa.

este es un programa que utiliza el objectcollection de visual basic como un arreglo ya que los listbox son uno por defecto ademas en este ejemplo se usar un arreglo para mantener una constancia de los datos y actulizar el listbox.

como soy nuevo no se si era que no me podian decir debidoa que era parte de una asignacion universitaria o que esta parte del foro no se visita mucho, como sea aqui lo dejo como un aporte y cualqier duda yo la contesto.  :smartass:


--- Código: Text --- Public Class Form1    Dim t_A = 100    Dim arreglo(0) As String    Dim indice As Integer     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load        indice = -1    End Sub      Private Sub btn_agregar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_agregar.Click        If indice = t_A - 1 Then            MessageBox.Show("Ha llegado al tope de elementos permitidos para agregar")        Else            indice += 1            ReDim Preserve arreglo(indice)            arreglo(indice) = txt_elemento.Text            lst_A.Items.Add(arreglo(indice))            txt_elemento.Clear()            txt_elemento.Focus()        End If    End Sub     Private Sub btn_eliminar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_eliminar.Click        Dim item As String        'Valida que el arreglo tenga items        If arreglo.Length = 0 Then            MessageBox.Show("No hay elementos disponibles para eliminar")            Exit Sub        End If         If lst_A.SelectedIndex = -1 Then            MessageBox.Show("Debe seleccionar un item para eliminar")            Exit Sub        End If         lst_A.Items.Remove(lst_A.SelectedItem)        indice = -1         ReDim arreglo(lst_A.Items.Count - 1)        For Each item In lst_A.Items            indice += 1            arreglo(indice) = item        Next     End Sub     Private Sub btn_insertar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_insertar.Click        Dim item As String         If indice = t_A - 1 Then            MessageBox.Show("Ha llegado al tope de elementos permitidos para agregar")        Else            lst_A.Items.Insert(lst_A.SelectedIndex, txt_elemento.Text)             indice = -1            ReDim arreglo(lst_A.Items.Count - 1)            For Each item In lst_A.Items                indice += 1                arreglo(indice) = item            Next            txt_elemento.Clear()            txt_elemento.Focus()        End If    End SubEnd Class  

Navegación

[0] Índice de Mensajes

Ir a la versión completa