Codice VB per centrare il testo in una finestra di messaggio

May 8

funzione MsgBox di VB non ha mezzi per centrare il testo che si desidera visualizzare con la funzione. Tuttavia, è possibile creare una funzione equivalente che fa visualizzazione centrato testo. Un approccio per la creazione di questa funzione è quello di progettare un modulo personalizzato con un'etichetta che si riposiziona in modo dinamico ogni volta che viene ridimensionato il form contenente l'etichetta.

Progettare il modulo

Il primo passo nella creazione di una propria funzione MsgBox il cui testo è possibile in modo dinamico centrare nuovamente è quello di progettare il modulo personalizzato che verrà visualizzato il testo. Questo comporta la creazione di un progetto VB Windows Form. All'interno l'ambiente di sviluppo di VB, premere "Control" e "N" simultaneamente, quindi fare clic sull'elemento Windows Form per creare un progetto del genere.

controllo Label

Quando appare la finestra di progettazione modulo, trascinare un controllo Label dalla Casella degli strumenti nel form. Posizionare l'etichetta ovunque; il programma verrà centrare l'etichetta. Tuttavia, si ha bisogno di specificare che il testo all'interno dell'etichetta deve essere centrato. Per fare questo, fare clic sulla proprietà "Text Align" nella finestra Proprietà. VB visualizzerà un piccolo modulo con nove pulsanti su di esso. Ogni pulsante indica un'opzione di allineamento per il testo dell'etichetta. Fare clic sul pulsante centrale per specificare che il testo etichetta deve essere centrato. Aggiungete un po 'di testo per l'etichetta che digitando il testo nella proprietà "Testo" della finestra Proprietà. Ad esempio, digitare "Ecco un testo che vorrei centrare."

Programmazione Window

Dopo la progettazione del modulo per simulare la funzione MsgBox, accedere alla finestra di programmazione, in cui è possibile digitare le dichiarazioni che il centro controllo Label tenendo il testo. Premendo il tasto "F7" ti porta a quella finestra.

Modulo Eventi

VB forma possono prendere qualsiasi dimensione l'utente vuole trascinarli. Questo comportamento significa che il testo non sarà probabilmente centrato a meno che non si può rilevare quando il form viene ridimensionato, e cambiare la posizione dell'etichetta che contiene il testo di conseguenza. funzioni di eventi di Windows forniscono un modo per rilevare il ridimensionamento e altri eventi. La funzione di evento specifico richiesto in cui digitare le dichiarazioni che dinamicamente il testo centrale è l'evento Paint. Ogni volta che VB ha bisogno di ridisegnare la forma, viene utilizzata questa funzione di evento. Ridimensionamento attiva questo evento, così come la forma riappare da dietro la finestra di un'altra applicazione.

Personalizzazione della vernice Evento

Indicare a VB si vuole digitare il programma di testo centrare nell'evento Paint selezionando quell'evento da elenchi a discesa della finestra di programmazione. Fai clic su "evento Form" dalla sinistra nell'elenco a discesa sopra la finestra di programmazione, quindi fare clic sulla voce "Paint" dall'elenco a discesa a destra. VB viene visualizzata la funzione di vernice in bianco per voi a riempire con le proprie dichiarazioni.

Calcoli di centraggio

Utilizzando l'istruzione Paint per centrare un controllo Label comporta alcuni calcoli di base. Che ci si comporta gli stessi calcoli per il centro del testo su supporti fisici, come un pezzo di carta. Incollare le seguenti dichiarazioni in funzione Paint. Queste dichiarazioni calcolano il bordo più a sinistra del controllo Label il cui testo si sta centraggio. I commenti del istruzione spiegano ogni fase del calcolo. Prova il tuo emulatore MsgBox per la centratura del testo premendo il tasto della tastiera "F5". Quando viene visualizzato modulo del programma, trascinare uno dei suoi angoli per ridimensionare il modulo. Il testo rimarrà centrato.

' 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