:) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1

Iniciado por luis456, 9 Diciembre 2013, 19:58 PM

0 Miembros y 3 Visitantes están viendo este tema.

luis456

Trasteando un poco por la red y super aburrido con los texboxes he probado a ver si en ves de estar mostrando los resultados en los texboxes los muestro en un listbox ?

quiero mostrar el resultado de   Result1 ,Result2, Result3 lo unico que logro es cuando introdusco en los primeros texboxes

Private Sub TextBox_Leave(ByVal sender As System.Object, ByVal e As  _
System.EventArgs) Handles TextBox7.Leave, TextBox8.Leave, TextBox9.Leave
        ListBox1.Items.Add(sender.text)
    End Sub



Luis


Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#1
La verdad es que un ListBox reduciría bastante el espacio que ocupan 30 textboxes xD




Citarquiero mostrar el resultado de   Result1 ,Result2, Result3

Eso lo entiendo, pero esto no:

Citar Private Sub TextBox_Leave(ByVal sender As System.Object, ByVal e As  _
System.EventArgs) Handles TextBox7.Leave, TextBox8.Leave, TextBox9.Leave
       ListBox1.Items.Add(sender.text)
   End Sub

¿Que intentas conseguir ahí?, quiero decir ¿porque usas el evento Leave para añadir el texto al ListBox?.

¿Si quieres reemplazar los textbox por un ListBox porque usas ese Evento?,
¿Has probado a añadir los resultados diréctamente en el ListBox sin intervenir con ningún TextBox? (eso sería lo coherente xD)

Algo como esto:
Código (vbnet) [Seleccionar]
Select Case Results.Where(Function(n) n = Results(X)).Skip(1).Any

  Case False ' El número no está repetido en ninguna "linea"
      ' Así que colocamos el número en el ListBox
      ListBox1.Items.Add(CStr(Results(X)))

  Case True ' El número está repetido en alguna de las "lineas"
      ' Así que escribimos el número "máximo" en el ListBox
      ListBox1.Items.Add(CStr(maximum))

End Select


¿Es eso a lo que te refieres?.

Saludos!








luis456

Cita de: EleKtro H@cker en 10 Diciembre 2013, 02:35 AM
La verdad es que un ListBox reduciría bastante el espacio que ocupan 30 textboxes xD




Eso lo entiendo, pero esto no:

¿Que intentas conseguir ahí?, quiero decir ¿porque usas el evento Leave para añadir el texto al ListBox?.

¿Si quieres reemplazar los textbox por un ListBox porque usas ese Evento?,
¿Has probado a añadir los resultados diréctamente en el ListBox sin intervenir con ningún TextBox? (eso sería lo coherente xD)

Algo como esto:
Código (vbnet) [Seleccionar]
Select Case Results.Where(Function(n) n = Results(X)).Skip(1).Any

  Case False ' El número no está repetido en ninguna "linea"
      ' Así que colocamos el número en el ListBox
      ListBox1.Items.Add(CStr(Results(X)))

  Case True ' El número está repetido en alguna de las "lineas"
      ' Así que escribimos el número "máximo" en el ListBox
      ListBox1.Items.Add(CStr(maximum))

End Select


¿Es eso a lo que te refieres?.

Saludos!

Esto mismo era, salvo que como hago para evitar que los resultados salgan todos hacia abajo recuerda que formo columnas de 4 números y que deberían de estar los cuatro array uno al lado del otro


en esta posicion

1 2 3 4
1 2 3 4
1 2 3 4


donde siendo los unos el primer array ,los dos el segundo arrays y haci hasta el cuarto array en ese orden,¿espero me entiendas jejeje


Gracias
Luis










Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#3
Supongo que estás usando un Winforms asi que la manera sería esta:

Código (vbnet) [Seleccionar]
' Establezco un par de arrays numéricos.
Dim arr1 As Integer() = {1, 2, 3, 4}
Dim arr2 As Integer() = {5, 6, 7, 8}

' Instancio un ListBox con las siguientes propiedades:
Dim LB As New ListBox With
   {
       .MultiColumn = True,
       .ColumnWidth = 10,
       .Size = New Size(300, 20)
   }

' Lo añado al formulario.
Me.Controls.Add(LB)

' Añado los elementos del primer Array, al ListBox.
LB.Items.AddRange(ArrayList.Adapter(arr1).ToArray)

' Añado dos elements vacíos que simulen un "separador".
LB.Items.AddRange(ArrayList.Adapter({String.Empty, String.Empty}).ToArray)

' Añado los elementos del segundo Array, al ListBox.
LB.Items.AddRange(ArrayList.Adapter(arr2).ToArray)


Nota: Si quieres hacer un ListBox más grande y que siga siendo horizontal, también tendrás que agrandar la fuente de texto del control y ajustar el ancho de la columna.

Saludos








luis456

Cita de: EleKtro H@cker en 10 Diciembre 2013, 18:45 PM
Supongo que estás usando un Winforms asi que la manera sería esta:

Código (vbnet) [Seleccionar]
' Establezco un par de arrays numéricos.
Dim arr1 As Integer() = {1, 2, 3, 4}
Dim arr2 As Integer() = {5, 6, 7, 8}

' Instancio un ListBox con las siguientes propiedades:
Dim LB As New ListBox With
   {
       .MultiColumn = True,
       .ColumnWidth = 10,
       .Size = New Size(300, 20)
   }

' Lo añado al formulario.
Me.Controls.Add(LB)

' Añado los elementos del primer Array, al ListBox.
LB.Items.AddRange(ArrayList.Adapter(arr1).ToArray)

' Añado dos elements vacíos que simulen un "separador".
LB.Items.AddRange(ArrayList.Adapter({String.Empty, String.Empty}).ToArray)

' Añado los elementos del segundo Array, al ListBox.
LB.Items.AddRange(ArrayList.Adapter(arr2).ToArray)


Nota: Si quieres hacer un ListBox más grande y que siga siendo horizontal, también tendrás que agrandar la fuente de texto del control y ajustar el ancho de la columna.

Saludos


:) Corro a probarlo jejej, lo que habia hecho hasta ahora era el prosaico metodo de juntar varios listbox y meterle a cada uno un array jejej

aaa el codigo es el de siempre :)


Gracias
Luis


Que tu sabiduria no sea motivo de Humillacion para los demas

luis456

Bueno me da estos errores ? implemente el lis y bien tambien para prueba declare las variables pero cuando lo integro al form salen estos problemillas


' Lo añado al formulario.
Me.Controls.Add(LB) <-------------error de sintaxis

    ' Añado los elementos del primer Array, al ListBox.
LB.Items.AddRange(ArrayList.Adapter(arr1).ToArray)  <<------se esperaba una declaracion

    ' Añado dos elements vacíos que simulen un "separador".
LB.Items.AddRange(ArrayList.Adapter({String.Empty, String.Empty}).ToArray)

    ' Añado los elementos del segundo Array, al ListBox.
LB.Items.AddRange(ArrayList.Adapter(arr2).ToArray)




Luis
Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

Hola

No tuve ningún error en el ejemplo que te dí, es imposible que salga ese tipo de excepcion, ¿que habrás echo? xD

De todas formas el ejemplo de arriba es solo eso, un ejemplo, no te lo tomes al pie de la letra, la idea es que tu no deberías crear el ListBox en tiempo de ejecución... usa el diseñador de formulario (que para algo está), arrastras un ListBox al formulario y ahí le modificas las propiedades en el menú de propiedades del Control, no es necesario crear el control usando código.

así queda el listbox del ejemplo:


Saludos









luis456

Cita de: EleKtro H@cker en 11 Diciembre 2013, 17:39 PM
Hola

No tuve ningún error en el ejemplo que te dí, es imposible que salga ese tipo de excepcion, ¿que habrás echo? xD

De todas formas el ejemplo de arriba es solo eso, un ejemplo, no te lo tomes al pie de la letra, la idea es que tu no deberías crear el ListBox en tiempo de ejecución... usa el diseñador de formulario (que para algo está), arrastras un ListBox al formulario y ahí le modificas las propiedades en el menú de propiedades del Control, no es necesario crear el control usando código.

así queda el listbox del ejemplo:


Saludos




Ya lo se, pero no se si es mi version de V.net 2010 ya que en  propiedades los valores que pones veo solo el de  size

.MultiColumn = True, <<<<<<<<<<< no sale
        .ColumnWidth = 10,<<<<<<<<<<<<<no sale
        .Size = New Size(300, 20)<<<<<<<<<<si sale


Luis







Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#8
Cita de: luis456 en 11 Diciembre 2013, 19:23 PMen  propiedades los valores que pones veo solo el de  size

Que estraño, deberían salir ...pues es una parte de dicho control,
¿Que tipo de proyecto haces? ¿WindowsPresentationFoundation, WindowsForms?
En WPF es totálmente diferente.

Saludos








luis456

Que tu sabiduria no sea motivo de Humillacion para los demas