Centrer du texte suivant la résolution d'écran

Résolu/Fermé
DarkNight5047 - Modifié par DarkNight5047 le 6/06/2014 à 20:13
 DarkNight5047 - 9 juin 2014 à 09:39
Bonjour, je voudrais centrer du texte dans ma form (très simple) mais suivant la résolution d'écran. C'est à dire que si la résolution d'écran est diférente, le texte est quand même centré.

J'ai déjà ce code pour récupérer la résolution d'écran :

Dim Width As String
Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width.ToString()
 
Dim Height As String
Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height.ToString()
A voir également:

2 réponses

Utilisateur anonyme
6 juin 2014 à 20:26
Bonjour,

Dans un formulaire, tu crée un label avec un texte centré et tu règle la taille de celui-ci sur la largeur et la hauteur de ta fenêtre si nécessaire. Et là une ancre sur les bords et le label s'adaptera automatiquement.

Est-ce que ça répond à ta question? Ou bien tu cherches peut être à mesurer la taille de la chaîne de caractères pour la centrer via un code? Car il faut dans ce cas prendre en considération la taille de la police etc. J'ai pas mal d'exemples en Java car j'utilise très souvent ces méthodes, mais les adapter en .NET faudra chercher un peu l'équivalent.
0
DarkNight5047
6 juin 2014 à 20:40
Malheuresement ça ne répond pas à ma question car il n'y aura pas qu'un texte c'était un exemple.. Mais plutot que le centrer, j'aimerez le positionner avec les coordonées de la résolution d'écran. Comme ça il seront toujours au même endroits peut importe la résolution d'écran !
0
Utilisateur anonyme
6 juin 2014 à 20:48
Là méthode qui semble adaptée à ça en c# est

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.textrenderer.measuretext?redirectedfrom=MSDN&view=netframework-4.8

Ca te permet de savoir la taille qu'aura un texte avec telle police. Le calcul est ensuite

x = (largeur/2) - taille/2

ou la largeur sera la largeur d'écran calculée et la taille obtenue avec le MeasureText.
0
DarkNight5047
7 juin 2014 à 09:55
je ne comprend pas comment gérer le x :/
Et aussi, une fois le calcule fait, que doit-je faire pour le mettre à un point préci de l'écran ? Car j'ai calculé mais maintenant il faut utiliser ce calcule pour placer le texte.
0
DarkNight5047
7 juin 2014 à 10:00
Le "calcule" n'a pas non plus l'air de marcher.. Car normallement il ne devrait pas afficher le texte : "Measure this text" ?
0
Utilisateur anonyme
7 juin 2014 à 10:58
Bonjour, je t'ai fait un petit exemple complet avec les labels car tu peux ainsi les utiliser comme des variables.

Tu crées un formulaire avec un Button1 et un Label1 avec la propriété AutoSize à True.

Voici le code :

        private void button1_Click(object sender, EventArgs e)
        {
            label1.Text = "Ceci est un test";
            centerLabels();
        }

        private void Form1_Resize(object sender, EventArgs e)
        {
            centerLabels();
        }

        private void centerLabels()
        {
            Rectangle rect = this.ClientRectangle;

            label1.Left = ((int)rect.Width / 2) - (int)(label1.Width / 2);
            label1.Top = ((int)rect.Height / 2) - (int)(label1.Height / 2);
        }


Avec l'événement Resize du formulaire tu peux appeler la méthode centerLabels et ça centre le texte.

Tu peux ajouter autant de label que tu veux et les mettre dans la méthode centerLabels pour les centrer.
0
Merci mais je travail en VB.NET donc je n'ai pas centerLabels et pratiquement tout ton code est afficher en erreur (declaration attendu, fin d'instruction attendu, etc..) ... Serait tu le mettre en vb.net ?
0