La fonction MsgBox de VB n'a pas les moyens pour centrer le texte que vous souhaitez afficher avec la fonction. Cependant , vous pouvez créer une fonction équivalente qui n'affiche texte centré . Une approche pour la création de cette fonction est de concevoir un formulaire personnalisé avec une étiquette qui repositionne dynamique lui-même chaque fois que le formulaire contenant l'étiquette est redimensionnée. Concevoir le formulaire La première étape dans la création de votre propre fonction MsgBox dont le texte vous pouvez dynamiquement recentrer est de concevoir le formulaire personnalisé qui permettra d'afficher le texte. Il s'agit de créer un projet Windows Form VB . A l'intérieur de l'environnement de développement VB , appuyez sur "Control" et "N " en même temps , puis sur l'élément de formulaire Windows pour créer un tel projet. Étiquette de contrôle Lorsque la fenêtre de conception de formulaire apparaît , faites glisser un contrôle Label de la Boîte à outils vers le formulaire. Placez l'étiquette n'importe où , votre programme sera centré l'étiquette. Cependant, vous n'avez pas besoin de spécifier que le texte à l'intérieur de l'étiquette doit être centré. Pour ce faire , cliquez sur le "Text align" propriété dans la fenêtre Propriétés. VB affiche un petit formulaire avec neuf boutons. Chaque bouton indique une option d'alignement pour le texte de l'étiquette. Cliquez sur le bouton du milieu de préciser que le texte de l'étiquette doit être centré . Ajoutez un peu de texte à l'étiquette en tapant ce texte dans le "Texte" propriété de la fenêtre Propriétés . Par exemple, tapez «Voici un texte que je voudrais centre. " Fenêtre de programmation Après la conception de la forme afin de simuler la fonction MsgBox , entrer dans la fenêtre de programmation , dans laquelle vous pouvez taper des instructions que le centre du contrôle Label tenant le texte. En appuyant sur "F7" vous amène à cette fenêtre. Evénements formulaire formes VB peut prendre n'importe quelle taille que l'utilisateur veut les faire glisser . Ce comportement signifie votre texte ne sera probablement pas centrée , sauf si vous pouvez détecter lorsque le formulaire est redimensionné , et changer la position de l'étiquette qui détient votre texte en conséquence. Fonctions d'événements Windows fournissent un moyen de détecter le redimensionnement et d'autres événements . La fonction d'événement spécifique nécessaire pour se taper des instructions que le texte de centre dynamique est l'événement Paint . Chaque fois que VB a besoin de redessiner la forme , cette fonction d'événements est utilisé . Redimensionnement déclenche cet événement , tout comme la forme de réapparaître derrière la fenêtre d'une autre application . Personnalisation de Paint événement Indiquez à VB vous voulez taper votre programme texte - centrage l'événement Paint en sélectionnant cet événement à partir des listes drop- down de la programmation de la fenêtre. Cliquez sur " événement de forme " dans la liste déroulante de gauche au-dessus de la fenêtre de programmation , puis cliquez sur l'option " peinture " dans la liste déroulante à droite. VB affiche la fonction de peinture vide pour que vous remplissiez de vos propres déclarations. Calculs de centrage Utilisation de l'instruction de peinture pour centre un contrôle Label implique un peu de base calculs . Vous souhaitez effectuer ces mêmes calculs pour centrer le texte sur un support physique , comme un morceau de papier. Collez les instructions suivantes dans la fonction de la peinture. Ces déclarations calculer le bord gauche du contrôle Label dont le texte vous centrage. Les commentaires de cette déclaration explique chaque étape du calcul . Testez votre émulateur de MsgBox pour le centrage du texte en appuyant sur la touche clavier "F5" . Lorsque la forme du programme apparaît, faites glisser l'un de ses coins pour redimensionner le formulaire. Votre texte va rester centré. ' Obtenir la taille de l'étiquette ' obtenir la taille de la forme " taille de l'étiquette de Soustraire de la taille de la forme « Divisez par 2 'Set label.left à Résultats d' Dim w , w2 , difw = Me.Size.Widthw2 = Label1.Size.Widthdif = w - w2dif = DIF /2Label1.Left = dif
|