• Viernes 19 de Abril de 2024, 07:05

Autor Tema:  Como Usar El Selectedobjectcollection Del Listbox  (Leído 1470 veces)

Thanatos-chan

  • Miembro MUY activo
  • ***
  • Mensajes: 136
  • Nacionalidad: do
    • Ver Perfil
Como Usar El Selectedobjectcollection Del Listbox
« en: Viernes 29 de Septiembre de 2006, 00:29 »
0
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
  1. Public Class Form1
  2.     Dim i As Integer
  3.  
  4.  
  5.  
  6.     Private Sub btn_agregar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_agregar.Click
  7.         lst_A.Items.Add(txt_Numero.Text)
  8.         txt_Numero.Text = ""
  9.         txt_Numero.Focus()
  10.  
  11.     End Sub
  12.  
  13.     Private Sub btn_eleminar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_eleminar.Click
  14.         If lst_A.SelectedIndex <> -1 Then
  15.             lst_A.Items.Remove(lst_A.SelectedItem)
  16.         End If
  17.     End Sub
  18.  
  19.     Private Sub btn_insertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_insertar.Click
  20.         For i = 0 To lst_A.SelectedIndices.Count - 1
  21.  
  22.             lst_A.Items.Insert(i, txt_Numero.Text)
  23.         Next
  24.     End Sub
  25. End Class
  26.  

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
Que es un genio???? yo superare a un genio con trabajo duro, y eso es todo.

Thanatos-chan

  • Miembro MUY activo
  • ***
  • Mensajes: 136
  • Nacionalidad: do
    • Ver Perfil
Re: Como Usar El Selectedobjectcollection Del Listbox
« Respuesta #1 en: Martes 24 de Octubre de 2006, 16:39 »
0
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
  1.  
  2. Public Class Form1
  3.     Dim t_A = 100
  4.     Dim arreglo(0) As String
  5.     Dim indice As Integer
  6.  
  7.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  8.         indice = -1
  9.     End Sub
  10.  
  11.  
  12.     Private Sub btn_agregar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_agregar.Click
  13.         If indice = t_A - 1 Then
  14.             MessageBox.Show("Ha llegado al tope de elementos permitidos para agregar")
  15.         Else
  16.             indice += 1
  17.             ReDim Preserve arreglo(indice)
  18.             arreglo(indice) = txt_elemento.Text
  19.             lst_A.Items.Add(arreglo(indice))
  20.             txt_elemento.Clear()
  21.             txt_elemento.Focus()
  22.         End If
  23.     End Sub
  24.  
  25.     Private Sub btn_eliminar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_eliminar.Click
  26.         Dim item As String
  27.         'Valida que el arreglo tenga items
  28.         If arreglo.Length = 0 Then
  29.             MessageBox.Show("No hay elementos disponibles para eliminar")
  30.             Exit Sub
  31.         End If
  32.  
  33.         If lst_A.SelectedIndex = -1 Then
  34.             MessageBox.Show("Debe seleccionar un item para eliminar")
  35.             Exit Sub
  36.         End If
  37.  
  38.         lst_A.Items.Remove(lst_A.SelectedItem)
  39.         indice = -1
  40.  
  41.         ReDim arreglo(lst_A.Items.Count - 1)
  42.         For Each item In lst_A.Items
  43.             indice += 1
  44.             arreglo(indice) = item
  45.         Next
  46.  
  47.     End Sub
  48.  
  49.     Private Sub btn_insertar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_insertar.Click
  50.         Dim item As String
  51.  
  52.         If indice = t_A - 1 Then
  53.             MessageBox.Show("Ha llegado al tope de elementos permitidos para agregar")
  54.         Else
  55.             lst_A.Items.Insert(lst_A.SelectedIndex, txt_elemento.Text)
  56.  
  57.             indice = -1
  58.             ReDim arreglo(lst_A.Items.Count - 1)
  59.             For Each item In lst_A.Items
  60.                 indice += 1
  61.                 arreglo(indice) = item
  62.             Next
  63.             txt_elemento.Clear()
  64.             txt_elemento.Focus()
  65.         End If
  66.     End Sub
  67. End Class
  68.  
  69.  
Que es un genio???? yo superare a un genio con trabajo duro, y eso es todo.