Visual Basic - text box

Life is soft - evento anual de software empresarial
 
Vista:

text box

Publicado por Arturo (7 intervenciones) el 19/11/2002 20:11:54
como puedo saber si un texto largo que estoy por poner en un text box (esta configurado para multiples lineas) ha llegado al borde derecho?
Necesito escribir algo como esto:
XXX - texto texto texto
bla bla bla
y quiero que la "b" quede exactamente debajo de la "t"
gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:text box

Publicado por Josetxu (75 intervenciones) el 19/11/2002 21:25:41
Pon esto en el procedimiento de evento KeyPress del TextBox, y pon en la constante LongitudMax el numero máximo de caracteres que quieras que ocupe una linea.

Private Sub Text1_KeyPress(KeyAscii As Integer)
Const LongitudMax = 20
If Len(Text1.Text) Mod LongitudMax = 0 Then
Text1 = Text1 & vbCrLf
Text1.SelStart = Len(Text1.Text)
End If
End Sub

Lo malo es que te cortará las palabras, es decir, avanzará la linea exactamente cuando le toque, sin mirar si una palabra se queda cortada.
Eso ya te lo dejo a tu inventiva.

Suerte
Josetxu
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

no es esto lo que quiero

Publicado por Arturo (7 intervenciones) el 19/11/2002 22:45:38
El texto es variable y no lo estoy digitando, lo leo de un archivo y dice algo así:

08:00 - Este es el nombre de un evento muy largo que sucederá a las 8 de la mañana y bla bla bla bla.

Lo que deseo es que el segundo renglón comience debajo de la E de "Este..."

Se entiende?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:no es esto lo que quiero

Publicado por Josetxu (75 intervenciones) el 19/11/2002 23:07:31
Entonces solo se me ocurre que utilices un RichTextBox que te permite meter tabulaciones.
Para más explicaciones debería ver ese archivo de donde sacas los datos.
Porque si fuera una base de datos o si estuviera guardado con instrucciones Put con variables tipo registro, facilitaria mucho las cosas.
Siento no poder ayudarte más

Suerte
Josetxu
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no es esto lo que quiero

Publicado por Manelnight (69 intervenciones) el 20/11/2002 02:57:24
Si siempre empieza como tu dices, con una hora y luego una letra mayuscula lo que puedes hacer es contar cuantos caracteres hay hasta la primera mayúscula y te guardas ese número (X), luego cuando se cambie de linea en el textbox, metes (X) espacios y continuas con el texto.
No se si es lo que quieres pero algo es algo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

a ver si te sirve

Publicado por jose miguel (17 intervenciones) el 20/11/2002 19:04:03

si quieres esto:
hhh-hjshjdjsj
sdsdsd
sssds
Este codigo lo hace,lo unico que controlo es para que puedas borar.

Option Explicit
Dim pos As Integer

Private Sub Form_Load()
pos = 1
End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Const max = 10 'long max de linea'



If KeyCode = vbKeyBack Then
If pos > 1 Then
pos = pos - 1 'permite borrar'
End If

Else
If pos = max Then

Text1 = Text1 & vbCrLf
'salto de linea al llegar al tope '

Text1 = Text1 & " "
'espacios en blanco hasta el proximo carácter'
'los nº espacios en blanco, es por donde vas a seguir escribiendo
' a partir de la 2 linea,debe de ser igual que la asignacion a pos'
Text1.SelStart = Len(Text1.Text)

pos = 3

End If
pos = pos + 1
End If
End Sub
'si quieres que funcione perfectamente controlale
'que solo se puedan introducir los carácteres que deseas,
' por ejemplo las flechas , entran el en la sentencia y la altera.
'el programa esta basado en la idea de josextu.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

veo que no me explico bien

Publicado por Arturo (7 intervenciones) el 20/11/2002 21:16:56
El problema es que la cantidad de caracteres en una linea depende de los propios caracteres, ya que una "i" no ocupa el mismo ancho que una "m".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

correccion

Publicado por jose migue (17 intervenciones) el 20/11/2002 19:14:01
cuando te pongo el ejemplo de como quedaria, el hueco esta al principio, no es correcto lo que sale, pero solo dibujo es ta mal.

no se si ahora va salir bien , pq este editor lo alinea todo ala izq.

kkkk-kkklll
jkkklllllll
jjjjjjjjjjjjjjj
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar