Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 9 Diciembre 2013, 19:58 pm



Título: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: luis456 en 9 Diciembre 2013, 19:58 pm
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

Código:
 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




Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: Eleкtro en 10 Diciembre 2013, 02:35 am
La verdad es que un ListBox reduciría bastante el espacio que ocupan 30 textboxes xD



Citar
quiero mostrar el resultado de   Result1 ,Result2, Result3

Eso lo entiendo, pero esto no:

Citar
Código:
 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
  1. Select Case Results.Where(Function(n) n = Results(X)).Skip(1).Any
  2.  
  3.   Case False ' El número no está repetido en ninguna "linea"
  4.       ' Así que colocamos el número en el ListBox
  5.       ListBox1.Items.Add(CStr(Results(X)))
  6.  
  7.   Case True ' El número está repetido en alguna de las "lineas"
  8.       ' Así que escribimos el número "máximo" en el ListBox
  9.       ListBox1.Items.Add(CStr(maximum))
  10.  
  11. End Select

¿Es eso a lo que te refieres?.

Saludos!


Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: luis456 en 10 Diciembre 2013, 17:09 pm
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
  1. Select Case Results.Where(Function(n) n = Results(X)).Skip(1).Any
  2.  
  3.   Case False ' El número no está repetido en ninguna "linea"
  4.       ' Así que colocamos el número en el ListBox
  5.       ListBox1.Items.Add(CStr(Results(X)))
  6.  
  7.   Case True ' El número está repetido en alguna de las "lineas"
  8.       ' Así que escribimos el número "máximo" en el ListBox
  9.       ListBox1.Items.Add(CStr(maximum))
  10.  
  11. 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












Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: Eleкtro en 10 Diciembre 2013, 18:45 pm
Supongo que estás usando un Winforms asi que la manera sería esta:

Código
  1. ' Establezco un par de arrays numéricos.
  2. Dim arr1 As Integer() = {1, 2, 3, 4}
  3. Dim arr2 As Integer() = {5, 6, 7, 8}
  4.  
  5. ' Instancio un ListBox con las siguientes propiedades:
  6. Dim LB As New ListBox With
  7.    {
  8.        .MultiColumn = True,
  9.        .ColumnWidth = 10,
  10.        .Size = New Size(300, 20)
  11.    }
  12.  
  13. ' Lo añado al formulario.
  14. Me.Controls.Add(LB)
  15.  
  16. ' Añado los elementos del primer Array, al ListBox.
  17. LB.Items.AddRange(ArrayList.Adapter(arr1).ToArray)
  18.  
  19. ' Añado dos elements vacíos que simulen un "separador".
  20. LB.Items.AddRange(ArrayList.Adapter({String.Empty, String.Empty}).ToArray)
  21.  
  22. ' Añado los elementos del segundo Array, al ListBox.
  23. 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


Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: luis456 en 10 Diciembre 2013, 19:04 pm
Supongo que estás usando un Winforms asi que la manera sería esta:

Código
  1. ' Establezco un par de arrays numéricos.
  2. Dim arr1 As Integer() = {1, 2, 3, 4}
  3. Dim arr2 As Integer() = {5, 6, 7, 8}
  4.  
  5. ' Instancio un ListBox con las siguientes propiedades:
  6. Dim LB As New ListBox With
  7.    {
  8.        .MultiColumn = True,
  9.        .ColumnWidth = 10,
  10.        .Size = New Size(300, 20)
  11.    }
  12.  
  13. ' Lo añado al formulario.
  14. Me.Controls.Add(LB)
  15.  
  16. ' Añado los elementos del primer Array, al ListBox.
  17. LB.Items.AddRange(ArrayList.Adapter(arr1).ToArray)
  18.  
  19. ' Añado dos elements vacíos que simulen un "separador".
  20. LB.Items.AddRange(ArrayList.Adapter({String.Empty, String.Empty}).ToArray)
  21.  
  22. ' Añado los elementos del segundo Array, al ListBox.
  23. 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




Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: luis456 en 11 Diciembre 2013, 06:49 am
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


Código:
 ' 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


Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: Eleкtro 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:
(http://img46.imageshack.us/img46/3199/bb97.jpg)

Saludos



Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: luis456 en 11 Diciembre 2013, 19:23 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:
(http://img46.imageshack.us/img46/3199/bb97.jpg)

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









Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: Eleкtro en 11 Diciembre 2013, 19:39 pm
en  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


Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: luis456 en 12 Diciembre 2013, 05:59 am
WindowsForms?


Saludos

WindowsForms ,    sera porque uso la version 2010 express ?

luis


Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: Eleкtro en 12 Diciembre 2013, 08:29 am
sera porque uso la version 2010 express ?

No creo que por usar una versión Express afecte de tal forma como para restringir el acceso a las propiedades de un control ...vaya, pero tampoco voy a poner la mano en el fuego por Microsoft xD.

Quizás símplemente las propiedades estén ocultas (por algún extraño motivo) pero sigan accesibles, ¿no puedes modificar las propiedades usando código?.

Una alternativa al listbox es usar un Listview y modificarle la propiedad View a "LargeIcon" para hacerlo horizontal.

Otra (posible) alternativa sería descargar/instalar algún Listbox de terceros y comprobar si tiene las propiedades que le faltan a tu ListBox por defecto:
-> http://lmgtfy.com/?q=codeproject+listbox+user+control

Saludos



Título: Re: :) Hola de nuevo por acá,ahora nuevo invento pasar datos a un ListBox1
Publicado por: luis456 en 12 Diciembre 2013, 16:52 pm
No creo que por usar una versión Express afecte de tal forma como para restringir el acceso a las propiedades de un control ...vaya, pero tampoco voy a poner la mano en el fuego por Microsoft xD.

Quizás símplemente las propiedades estén ocultas (por algún extraño motivo) pero sigan accesibles, ¿no puedes modificar las propiedades usando código?.

Una alternativa al listbox es usar un Listview y modificarle la propiedad View a "LargeIcon" para hacerlo horizontal.

Otra (posible) alternativa sería descargar/instalar algún Listbox de terceros y comprobar si tiene las propiedades que le faltan a tu ListBox por defecto:
-> http://lmgtfy.com/?q=codeproject+listbox+user+control

Saludos




Listo y gracias elektro

Ahora a por otra cosa :)

Luis

Edito: jejej en propiedades de herramientas no las habia puesto todas :)