IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[c#] Rotation label ou textBox


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Par défaut [c#] Rotation label ou textBox
    Bonjours,
    je recherche un moyen d'incliner un label ou un textBox .

    D'après tout se que j'ai testé sur le web aucun n'a fonctionné en C#.

    Je me penche donc vers des personnes plus expérimentés. Merci pour chaque remarque de chaqu'un.

    cordialement sébastien.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Si tu te penches sur le wpf ça devrait être plus aisément réalisable!
    Sinon ,à mon avis la seule solution est de créer un objet graphique avec ton label ou ta textbox et de le dessiner!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Graphics g = tonControle.CreateGraphics();
    et tu dessines.

    En espérant t'avoir un peu aidé.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Par défaut
    Merci pour ta reponse Je commence a reprendre espoir
    parcontre, le dessiner ... c'est a dire ?

    La j'ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.RotateTransphorm(90);
    mais rien ne se passe...

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    pour le textbox, ca risque d'être compliqué, je crois que le curseur est géré par l'os et pas par le framework


    pour le label, je propose de créer un nouveau controle (hérité de control) qui a une propriété TextOrientation et gérer l'affichage (overrider onpaint et onpaintbackground)


    j'ai une fonction qui écrit en vertical : (code traduit de vb à c# par un site)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
     
     
         /// <summary>
         /// Dessine verticalement le texte fournit sur un objet graphics avec les paramètres de texte spécifiés
         /// </summary>
         /// <param name="g">graphics sur lequel dessiner</param>
         /// <param name="texte">string</param>
         /// <param name="font">police de caractère</param>
         /// <param name="couleur">couleur du texte</param>
         /// <param name="clientRect">zone maximum ou placer le texte</param>
         /// <param name="position">position sur la zone maximum, permet de centrer</param>
         /// <returns>True si aucune erreur</returns>
         /// <remarks></remarks>
         public bool DrawTexteVertical(System.Drawing.Graphics g, string texte, System.Drawing.Font font, System.Drawing.Color couleur, System.Drawing.Rectangle clientRect, System.Drawing.ContentAlignment position)
         {
             try {
                 if (g == null) return false;
                 if (string.IsNullOrEmpty(texte)) return true;
     
                 System.Drawing.Size tailleChar = default(System.Drawing.Size);
                 int x = 0;
                 int y = 0;
     
                 y = clientRect.Y;
     
                 for (int i = 0; i <= texte.Length - 1; i++) {
                     tailleChar = System.Windows.Forms.TextRenderer.MeasureText(texte.Chars(i), font);
                     x = clientRect.X + clientRect.Width / 2 - tailleChar.Width / 2;
                     g.DrawString(texte.Chars(i), font, new System.Drawing.SolidBrush(couleur), x, y);
                     y += tailleChar.Height - 1;
                 }
     
     
                 return true;
             }
     
             catch (Exception ex) {
                 TraceErreur.Trace(ex, g, texte, font, couleur, clientRect, position);
                 return false;
             }
         }
    il doit y avoir des exemples de gestion de rendu des controles en .net
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Par défaut
    Merci pour ta réponse , (Chars pas reconnu par le compilateur.)
    Mais rien ne se passe ...

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    c'est à dire ?

    la classe string à une propriété chars qui permet d'obtenir le caractère à un index donné
    faut ptete des crochets plutot que des parenthèses en c# ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rotation label vb.net
    Par djouk dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/06/2010, 13h59
  2. Faire une boucle sur des labels ou textBox
    Par Actarusdu60 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2008, 18h17
  3. Création UserForm (Labels OptionButton TextBox )
    Par clodius46 dans le forum VBA Word
    Réponses: 21
    Dernier message: 23/09/2007, 20h06
  4. ensemble de label et textbox
    Par LeXo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/12/2006, 16h43
  5. Réponses: 2
    Dernier message: 12/06/2006, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo