Autor
|
Tema: Alinear textos derecha e izquierda (Leído 7,169 veces)
|
rigorvzla
Desconectado
Mensajes: 221
|
Hola amigos, estoy aqui con un problema que no se como resolver, espero alguien pueda ayudarme.
Quiero en un cuadro de texto enviar textos, la cosa es: 1-No se si estoy usando el control correcto para esto (TextBox) actualmente 2-quiero escribir y que el texto enviado se alinie a la izquierda 3-quiero que cuando envie texto de otro metodo se alinie en el mismo cuadro pero a la derecha
como puedo lograr esto? se que unir el texto al mismo control se hace con Append, mas no se como alinear una los mensajes que envio a mi conveniencia.
Espero puedan darme ayuda , gracias de antemano
|
|
|
En línea
|
|
|
|
Serapis
|
El textbox tiene su propiedad alineacion... Ahora bien, me parece que tu quieres mantener una alineación 'múltiple' al mismo tiempo, tal cual aparece en los chats...
No has aclarado como debe aparecer verticalmente, es decir si el 'append' se realiza debajo de lo previo (quedando último mensaje abajo) o encima d elo previo (quedando lo último arriba dle todo). Normalmente queda abajo, pero requiere scroll por parte del usuario. El caso es que esto debe queda claro antes de nada para desarrollar un sistema y no el otro.
Esto se puede hacer de varias maneras: - Mantener 2 controles, uno alineado a la derecha y otro a la izquierda, ambos deberían mantener un aspecto transparente de modo que uno no tape al otro, si no que los textos se solapen como si estuvieran en la misma área. La complicación aquí es mantener la verticalidad , un mensaje debado de otro. Esto se logra fácil y chapuceramente manteniendo sendos controles otro oculto, donde se pega primero y se contabilida las líneas que ocupa, luego al texto a pegas hay que endosarle dichos saltos de línea (tantos como líneas).
- Mantener 1 solo control. Eliges una alineación (por ejemplo izquierda), cuando pegas el texto a izquierda no tienes nada más que hacer, pero cuando pegas el texto alineado a la derecha, debes calcular el espacio a añadir a la izquierda. Como consejo, se puede simplificar los cálculos si eliges una fuente monoespaciada (todos los caracteres tienen le mismo ancho), luego sabiendo el ancho del textbox, sabes cuantos caracteres caben en una línea. A la noche si estás interesado y saco un tiempito te pongo un sencillo pseudocódigo para esto...
- Mantener 2 controles ocultos cada uno con su alineación. El textbox donde se ve la imagen en realidad sería ahora un control de imagen. Tú pegas el texto en cada control oculto (que además tienen el mismo ancho que el control de imagen), y luego recortas (copias) el gráfico generado en el textbox de turno, y lo pegas en el control de imagen. Si tiene un fondo este control el pegado debe ser con transparencias y para ello el fondo de los textbox deben ser del color a enmascarar en el control de imagen.
En cualquier caso, date cuenta que si el control donde se expone al usuario es modificable (el menos en ancho), cada vez que se modifique dicho ancho requiere volver a renderizar todo su contenido, por lo que para que sea efectivo, todo el texto debe irse guardando en un fichero, diferenciando lo que se alinea a un lado de lo que se alinea al otro...
Ejemplo Como se guarda en el fichero: Pedro: Hola Juan, que harás esta noche?. Podríamos ir al cine... Juan: Hola Pedro, tengo toda la noche ocupada
Como se ve en la interfaz:
-------------------------------------------- Pedro: Hola Juan, que harás esta noche?. Podríamos ir al cine... Juan: Hola Pedro, tengo toda la no che ocupada --------------------------------------------
'Pedro:' y 'Juan:' (+ solo el salto de línea), hacen en el ejemplo el identificador de alineación en el fichero...
|
|
« Última modificación: 9 Agosto 2021, 16:55 pm por Serapis »
|
En línea
|
|
|
|
rigorvzla
Desconectado
Mensajes: 221
|
en efecto es justo lo q quiero hacer, lo intente con dos controles como mencionas, solo que lo vi muy poco practico , ya que al llegar al limite del textbox salen ambos scroll bar y daña todo la estetica, mas el ejemplo ultimo que me dejastes esta justo y suficiente para mi.
y algo extra seria , poner dos colores de fuentes distintas, ya que son dos y no mas "personas", me gustaria que se identificara, pero al intentarlo entonces solo queda de uno u otro color pero no por lineas
|
|
« Última modificación: 9 Agosto 2021, 17:40 pm por rigorvzla »
|
En línea
|
|
|
|
ThunderCls
Desconectado
Mensajes: 455
Coder | Reverser | Gamer
|
1-No se si estoy usando el control correcto para esto (TextBox) actualmente
No vas a poder lograr mucho con un TextBox "standard". Para esto necesitas un RichTextbox y el atributo SelectionAlignment, a traves del cual puedes especificar el tipo de alineacion horizontal que deseas hacer en una selection Con 1 RichTextbox y 2 Textbox (imitando inputs por separado) en el Form: private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Return) { richTextBox1.SelectionAlignment = HorizontalAlignment.Left; richTextBox1.SelectionBackColor = Color.DarkCyan; richTextBox1.SelectedText = textBox1.Text + Environment.NewLine; textBox1.Clear(); e.Handled = true; } } private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Return) { richTextBox1.SelectionAlignment = HorizontalAlignment.Right; richTextBox1.SelectionBackColor = Color.DarkGray; richTextBox1.SelectedText = textBox2.Text + Environment.NewLine; textBox2.Clear(); e.Handled = true; } }
Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Alinear NUEVOS iconos del escritorio a la derecha o abajo a la izquierda?
Windows
|
SuperDraco
|
3
|
7,612
|
5 Junio 2011, 16:25 pm
por Randomize
|
|
|
Guardar nulos a izquierda y no ha derecha.
Programación C/C++
|
Xedrox
|
6
|
3,810
|
27 Diciembre 2012, 01:23 am
por naderST
|
|
|
Alinear texto a la derecha
Programación C/C++
|
Sothu
|
4
|
4,574
|
12 Diciembre 2015, 19:38 pm
por fary
|
|
|
Crear un editor de texto de derecha a izquierda
Dudas Generales
|
Padrón Rocha
|
5
|
5,043
|
19 Agosto 2017, 20:32 pm
por Orubatosu
|
|
|
Como leo estos Bits de derecha a izquierda o izquierda a derecha ?
Programación C/C++
|
FFernandez
|
1
|
4,738
|
8 Octubre 2021, 00:12 am
por Eternal Idol
|
|