Tecnología

Inicio

Código de VB para Centro de texto en un cuadro de mensaje

función MsgBox de VB no tiene medios para centrar el texto que desea mostrar con la función. Sin embargo, puede crear una función equivalente que hace texto de la pantalla centrada. Un enfoque para la creación de esta función es diseñar un formulario personalizado con una etiqueta que cambia de posición dinámicamente cada vez que se cambia el tamaño del formulario que contiene la etiqueta.

Diseñar el formulario

El primer paso en la creación de su propia función MsgBox cuyo texto se puede centrar de nuevo de forma dinámica es diseñar el formulario personalizado que se mostrará el texto. Esto implica la creación de un proyecto de VB de Windows Forms. Dentro del entorno de desarrollo de Visual Basic, presione "Control" y "N" al mismo tiempo, a continuación, haga clic en el elemento de formulario de Windows para crear un proyecto de este tipo.

etiqueta de control

Cuando aparezca la ventana de diseño de formularios, arrastre un control Label desde el cuadro de herramientas hasta el formulario. Coloque la etiqueta en cualquier lugar; su programa se centrará la etiqueta. Sin embargo, sí es necesario especificar que el texto dentro de la etiqueta debe estar centrado. Para ello, haga clic en la propiedad "Alinear texto" en la ventana Propiedades. VB mostrará un pequeño formulario con nueve botones en él. Cada botón indica una opción de alineación para el texto de la etiqueta. Haga clic en el botón central para especificar que el texto de la etiqueta debe estar centrado. Añadir un poco de texto a la etiqueta que escribiendo texto en la propiedad "Texto" de la ventana Propiedades. Por ejemplo, escriba "Aquí hay un poco de texto que me gustaría centrar".

ventana de programación

Después de diseñar la forma de simular la función MsgBox, entrar en la ventana de programación, en el que puede escribir las declaraciones que se centran en el control Label que sostiene el texto. Al pulsar la tecla "F7" te lleva a esa ventana.

Eventos de formulario

formas VB pueden tener cualquier tamaño que el usuario quiere arrastrar a. Este comportamiento significa que su texto no es probable que se centra menos que se puede detectar cuando se cambia el tamaño del formulario y cambiar la posición de la etiqueta que contiene el texto en consecuencia. funciones de eventos de Windows proporcionan una forma de detectar cambios de tamaño y otros eventos. La función de evento específico requerido en el que para escribir declaraciones que dinámicamente el texto central es el evento Paint. Siempre VB necesita para volver a dibujar la forma, se utiliza esta función evento. El cambio de tamaño desencadena este evento, al igual que la forma de reaparecer detrás de la ventana de otra aplicación.

Personalización de la pintura de sucesos

Indicar a VB desea escribir su programa de texto centrado en el evento Paint mediante la selección de ese evento a partir de listas desplegables de la ventana de programación. Haga clic en "evento Form" de la lista desplegable de la izquierda por encima de la ventana de programación, a continuación, haga clic en el elemento "pintura" de la lista desplegable de la derecha. VB mostrará la función de pintura en blanco para que pueda llenar con sus propias declaraciones.

Los cálculos para el centrado

Uso de la instrucción de pintura para centrar un control Label implica unos cálculos básicos. Se podría llevar a cabo estos mismos cálculos a centrar el texto en soporte físico, como un pedazo de papel. Pegar las siguientes declaraciones en la función de pintura. Estas declaraciones calculan el extremo izquierdo del control Label, cuyo texto que está centrado. Las observaciones de la declaración se explica cada paso del cálculo. Pon a prueba tu emulador MsgBox para el centrado de texto pulsando la tecla del teclado "F5". Cuando aparezca el formulario del programa, arrastre una de sus esquinas para cambiar el tamaño de la forma. Su texto se mantendrá centrada.

' Get size of label
' Get size of form
' Subtract label size from form size
' Divide by 2
' Set label.left to result

Dim W, W2, dif
w = Me.Size.Width
W2 = Label1.Size.Width
DIF = w - w2
DIF = dif / 2
Label1.Left = dif