Alineación VERTICAL de textbox o label

Tengo textbox y labels, para mostrar información que necesito resaltar..
El problema que me surge es que, si agrando el tamaño de los labels o texbox
El texto me queda alineado superior
Intente hacer algo con el tamaño de fuente... Pero no es lo mejor
Alguien que me tire una idea de como se puede solucionar este problemita

2 respuestas

Respuesta
1
En el menu formato, tienes diferentes opciones para alinear, centrar y cambiar el tamaño de los controles, simplemente tienes que seleccionar los controles que quieras alinear, haciendo click en cada uno de ellos manteniendo la tecla Control presionada y luego buscas en el menu formato la alineación que le quieras dar.
Debes tomar en cuenta que se van a alinear o se les va a modificar el tamaño tomando como referencia el ULTIMO de los controles que seleccionaste.
Hola devuelta
Me parece que no exprese bien mi duda...
Lo que quiero hacer es, que el texto
Que se encuentra en un textbox o label
que alineado al centro... VERTICALMENTE
O por lo menos ABAJO
Hace la prueba
Pone un textbox de un tamaño mayor a lo normal e intenta centralo VERTICALMENTE
Esa era la pregunta
Ya se como alinear 2 controles al medio..
Lo que quiero es alinear al medio el texto de un control textbox o de un label
Un saludo de ezequiel
Ok te entendí mal lo que me quisiste decir, yo en estos momentos no tengo aquí instalado el visual basic, pero trata de buscar en la ayuda a ver que te dice la propiedad center y yo lo busco hoy cuando llegue a mi casa y mañana te digo lo que encuentre
No lo encontré
Te devuelvo la pregunta
Para que puedas darme la respuesta
Saludos de ezequiel
He estado investigando y de verdad no encuentro como puedes alinear un textbox verticalmente, pero lo estuve consultando y te puedo dar varias soluciones.
1. Que hagas el textbox multilínea y así escribas a la altura que quieras.
2.Si no te sirve que escriban en la parte superior ni inferior del textbox, osea que no te sirve multilínea, puedes hacer lo siguiente:
Coloca en lugar del textbox grande un PictureBox del tamaño que tu lo quieras y luego coloca sobre él un textbox de tamaño normal y lo centras en el picturebox como lo quieres tener. "Claro debes quitarle los bordes al textbox para que no se note esta una cosa montada sobre la otra". Si lo haces así cuando lo ejecutes se va a ver como si el textbox fuera tan grande como tu quieres, pero solo se va a poder escribir en el centro (donde está el verdadero textbox)
3.Porque otra solución pero un poco más complicada seria hacer el textbox multilínea y a través de una función que tu codifiques indicarle en que línea va a escribir
Pero de verdad yo te recomiendo la segunda opción, seria muy efectiva y sencilla de hacer...
Muchas gracias por tu ayuda
Voy a ver cual hago... porque ninguna es 100% optima... voy a ver si encuentro algún otro objeto textbox que permita arreglar esto
Igualmente si no lo encuentro, me quedan tus opciones
Muchas gracias por las molestia... te vuelvo a consultar pronto
Respuesta
1

Es antiguo, pero por si a alguien más le interesa:

'Alinea verticalmente un textBox o un label
Public Sub AlineaVerticalmente(ByRef objCtl As control)
Dim intMargenMinimo As Integer
Dim intAnchoDelBorde As Integer
Const TWIPSPERPOINT = 20
On Error GoTo CodigoDeError
If objCtl.ControlType = acTextBox Or objCtl.ControlType = acLabel Then
    'Averigua número de lineas
     Dim LongitudDelTexto, AnchoDeLaCaja, NumeroDeLineas, AlturaDelTexto
     If objCtl.ControlType = acTextBox Then
        LongitudDelTexto = objCtl.Text
     Else
        LongitudDelTexto = objCtl.Caption
     End If
     'Averigua el ancho
     AnchoDeLaCaja = objCtl.Width
     LongitudDelTexto = (Len(LongitudDelTexto) * TWIPSPERPOINT * objCtl.FontSize) / 2
     NumeroDeLineas = Int(LongitudDelTexto / AnchoDeLaCaja) + 1
     AlturaDelTexto = NumeroDeLineas * TWIPSPERPOINT * objCtl.FontSize
        intMargenMinimo = 1 * TWIPSPERPOINT
        intAnchoDelBorde = (objCtl.intAnchoDelBorde * TWIPSPERPOINT) / 2
        objCtl.TopMargin = ((objCtl.Height - AlturaDelTexto) / 2) - intMargenMinimo - intAnchoDelBorde
End If
CodigoDeError:
    Exit Sub
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas