# TextBox



## ciri (Sep 2, 2007)

Hola,
Tengo un problema que se burla de mi!!..

Dejo una imagen donde se puede ver a que me refiero!
Como pueden ver a la izquierda, hay un campo de texto (TextBox), el cual tiene varios números escritos, estos números se escriben cuando pulso el boton "Enviar".
Lo que quiero lograr es que el texto se ingrese con el formato que esta a la derecha, uno debajo del otro... para esto intente colocarle un enter en formato ASCII al final de la linea para que empieza en una nueva, pero no me reconoce el comando!.

Que puedo hacer?? que soluciones me dan??


----------



## Fogonazo (Sep 2, 2007)

Intenta con esto:


Private Sub Command1_Click()
     Dim T As Single
     Dim Caracter As String
     Dim Cadena As String
     If Text1.Text = Empty Then Exit Sub
     ' Text2.MultiLine debe estar en True
     ' Text2.ScrollBars debe estar en true
     For T = 1 To Len(Text1)
           Caracter = Mid(Text1.Text, T, 1)
           Cadena = Cadena & vbCrLf & Caracter & "-" & vbCrLf_
     Next T
     Text2 = Cadena
End Sub


----------



## tiopepe123 (Sep 2, 2007)

Honbre Fogonazo no conocia esa faceta de programador de VB, ahora que te he calado ya se a quien preguntar.

Es que mi celebro funciona en monotarea, en asembler y C, ha la que habro varios hilos me bloqueo. Debe ser un problema de semaforos, polimorfismos, herencia y yo que se.


----------



## Fogonazo (Sep 2, 2007)

Pues nos complentamos, yo de C  y asembler ni "J"

En cierta oportunidad se me ocurrio aprender algo de "C" y el dolor de cabeza me duro mas que resaca de anis.


----------



## ciri (Sep 2, 2007)

Gracias..

Pero no lo puedo hacer andar!. jeje..

Voy a seguir intentando!.


----------



## Fogonazo (Sep 2, 2007)

Pongamonos de acuerdo: 
¿ Tu quieres que el contenido de un textbox se escriba en otro de forma verical insertando un salto de pagina entre caracter y caracter ?


----------



## ciri (Sep 2, 2007)

A ver!..

El programita funciona mas o meno asi:
Cuando pulsas el botón "Estado", se imprimen en el textbox, los números de los campos de arriba (A, B, C, D, E) se imprimen en el textbox, con el formato de la imagen izquierda.
Yo lo que quiero es que se escriban pero colocarles un salto de linea al final para que queden en una sola columna centrados en el centro, como esta en la imagen derecha.


----------



## Fogonazo (Sep 2, 2007)

Por favor ponle otros datos que no sean todos ceros como para entender mejor.


Si efectuas una suma de cadenas (Text1.text = TextA & TextB & TextC...) y la aplicas al text1 que te pase creo que puedes tener lo que quieres.


----------



## ciri (Sep 2, 2007)

Es complicado explicar asi, voy a intentar de hacerlo con imagenes!

O preferis que suba el modulo, para que se pueda descargar y lo miras?


----------



## Fogonazo (Sep 2, 2007)

Manda otra imagen como la anterior pero cambiame los ceros por otros numeros. Please ¡¡


----------



## ciri (Sep 2, 2007)

algo asi....


----------



## ChaD (Sep 2, 2007)

Ciri, no te sirve hacerlo con un List???

Simplemente aregalo a tu form y despues vas agregando elementos con la propiedad "additem". Asi: List1.additem


----------



## ChaD (Sep 2, 2007)

Ah, me olvidaba, aunque supongo que has trabajado con estos... Cuando vos agregas asi como te digo se te van poniendo uno abajo de otro entonces lo verias como queres. Fijate... por ahi le encontras la vuelta de esa forma


----------



## Fogonazo (Sep 3, 2007)

Ahora me ha cambiado la cosa

Intenta esto:

Private Sub Command1_Click()
    Dim Porcentaje As Single
    Text1 = 111
    Text2 = 222
    Text3 = 444
    Text4 = 555
    Text5 = 666
    Porcentaje = 72.11

   Text6.Text = Text1 & "-" & Text2 & "-" & Text3 & "-" & Text4 & "-" & Text5 & "  (" &  
   Str(Porcentaje) & "%)"
End Sub


Edit: 
Me volvi a fijar y vi que usaste ComboBox, en este caso es lo mismo, la linea de suma de cadenas es una sola, el editor del foro la corta


----------



## Fogonazo (Sep 3, 2007)

OOpppsssss....., Lo hice nuevamente

Corregido para combobox

Private Sub Form_Load()
   Combo1.AddItem 111
   Combo1.AddItem 222
   Combo1.AddItem 333
   Combo1.AddItem 444
   Combo1.AddItem 555
   Combo1.AddItem 666
End Sub

Private Sub Command1_Click()
   Dim Porcentaje As Single
   Text2 = 222
   Text3 = 444
   Text4 = 555
   Text5 = 666
   Porcentaje = 72.11
   Text6.Text = Combo1.Text & "-" & Text2 & "-" & Text3 & "-" & Text4 & "-" & Text5  
                                                                            & "  (" &   Str(Porcentaje) & "%)"
End Sub


----------



## Iván T. (Sep 3, 2007)

Bueno, hace mucho que no toco VB, así que tal vez tenga algún que otro error de syntaxis.

Por lo que tengo entendido, lo que querés hacer es una especie de consola, log, o como quieras llamarlo, que agregue una entrada (línea) con cada click que le hagas al botón "Estado".

Esto sería algo así:

_Llamaremos *cmdEstado* al botón 'Estado', y *txtLog* al textbox multiline de la consola; *txtA*, *txtB*.. *txtE* serán los textbox numéricos. *Percent* será el valor del scrollbar._

```
Private Sub cmdEstado_Click()

	txtLog.text = txtLog.text & _
		txtA.text & "-" & _
		txtB.text & "-" & _
		txtC.text & "-" & _
		txtD.text & "-" & _
		txtE.text & " (" & _
		Percent.value & "%)" & _
		vbNewLine

End Sub
```

Para el valor del scrollbar CREO que la propiedad era value, por las dudas checkeá esto.
vbNewLine es para agregar el retorno de línea en vb, de todas maneras, en caso de que me haya equivcado u olvidado, probá con chr(13) en vez de vbNewLine, que debería ser lo mismo.

// Edit: Como bien te dijieron más arriba, yo usaría un ListBox en este caso, ya que se adapta mejor a esto.


----------



## ciri (Sep 3, 2007)

Gracias a todos!!.. muy buenas ideas!!.

pero creo que encontre una mas facil que de adapta mejor a lo que queria!!..

Simplemente agrege un chr$(13) + chr$(10) al final de mi "formula"..

Ya lo habia intentado varias veces.. pero no me reconocia el enter como 13, me explicaron que el problema estaba en que un chr$(13), solo no lo toma tiene que estar junto al chr$(10)..

Gracias...


----------



## Iván T. (Sep 3, 2007)

\r\n ..

Usando vbNewLine como te puse más arriba debería funcionar igual de bien.


----------

