Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Label vertical

12 réponses
Avatar
Annie
Le Thu, 20 Sep 2007 16:02:03 +0200, Annie
<Annie@discussions.microsoft.com> a écrit:

> Je n'ai pas beaucoup de connaissance en ce domaine!
> Y-aurait-il pas une façon plus simple de procéder à faire tourner une
> étiquette à 90°, 180°, 270°???
>
>>
> "Gilles TOURREAU" wrote:
>
>> Créer une classe qui dérive de Label et de mettez ce bout de code qui
dessine du texte à -90° :

Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
pe.Graphics.RotateTransform(-90)
pe.Graphics.TranslateTransform(-Height, 0)

Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, 0, 0)
End Using
End Sub

Vous n'avez plus qu'à utiliser ce nouveau contrôle dans vos fenêtres...

Cordialement

--
Je n'ai pas beaucoup de connaissance en ce domaine, je débute depuis
quelques mois! J'ai réussi à mettre ce code dans une classe!

Mais comment m'en servir dans mon programme ?
Comment m'en servir avec une étiquette ?

J'aurai besoin d'aide S.V.P.

Merci!

10 réponses

1 2
Avatar
Gilles TOURREAU
Le Thu, 27 Sep 2007 21:12:01 +0200, Annie
a écrit:

Je n'ai pas beaucoup de connaissance en ce domaine, je débute depuis
quelques mois! J'ai réussi à mettre ce code dans une classe!
Mais comment m'en servir dans mon programme ?
Comment m'en servir avec une étiquette ?
J'aurai besoin d'aide S.V.P.
Merci!



Donnez plus d'informations sur votre demande !

Comment imprimez vous vos étiquettes ? Via l'espace de nom
System.Drawing.Printing ? Où d'une autre façon ? En pilotant une
imprimante spécifique via le port série par exemple ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Annie
Je pense que vous m'avez mal compris!!!
Je parle du contrôle étiquette ou d'un TextBox!
Vous mavez répondu il n'y a pas longtemps et vous m'avez fourni un code
d'une classe pour faire pivoter une étiquette à 90°!!!
J'ai créé la classe mais je ne sais pas comment m'en servir avec un contrôle
étiquette (Label).
J'aimerais avoir un exemple, comment m'en servir!!!
Tout ceci à cause d'un manque de connaissance de ma part, veuillez m'excuser!


Voici la classe en question que vous m'avez envoyé :

Créer une classe qui dérive de Label et de mettez ce bout de code qui
dessine du texte à -90° :

Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
pe.Graphics.RotateTransform(-90)
pe.Graphics.TranslateTransform(-Height, 0)

Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, 0, 0)
End Using
End Sub

Vous n'avez plus qu'à utiliser ce nouveau contrôle dans vos fenêtres...


Merci!

"Gilles TOURREAU" wrote:

Le Thu, 27 Sep 2007 21:12:01 +0200, Annie
a écrit:

> Je n'ai pas beaucoup de connaissance en ce domaine, je débute depuis
> quelques mois! J'ai réussi à mettre ce code dans une classe!
> Mais comment m'en servir dans mon programme ?
> Comment m'en servir avec une étiquette ?
> J'aurai besoin d'aide S.V.P.
> Merci!

Donnez plus d'informations sur votre demande !

Comment imprimez vous vos étiquettes ? Via l'espace de nom
System.Drawing.Printing ? Où d'une autre façon ? En pilotant une
imprimante spécifique via le port série par exemple ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Avatar
Gilles TOURREAU
Le Fri, 28 Sep 2007 14:49:01 +0200, Annie
a écrit:

Je pense que vous m'avez mal compris!!!
Je parle du contrôle étiquette ou d'un TextBox!
Vous mavez répondu il n'y a pas longtemps et vous m'avez fourni un code
d'une classe pour faire pivoter une étiquette à 90°!!!
J'ai créé la classe mais je ne sais pas comment m'en servir avec un
contrôle
étiquette (Label).
J'aimerais avoir un exemple, comment m'en servir!!!
Tout ceci à cause d'un manque de connaissance de ma part, veuillez
m'excuser!


Voici la classe en question que vous m'avez envoyé :

Créer une classe qui dérive de Label et de mettez ce bout de code qui
dessine du texte à -90° :

Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
pe.Graphics.RotateTransform(-90)
pe.Graphics.TranslateTransform(-Height, 0)

Using sb As System.Drawing.SolidBrush = New
SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, 0, 0)
End Using
End Sub

Vous n'avez plus qu'à utiliser ce nouveau contrôle dans vos fenêtres...


Merci!

"Gilles TOURREAU" wrote:

Le Thu, 27 Sep 2007 21:12:01 +0200, Annie
a écrit:

> Je n'ai pas beaucoup de connaissance en ce domaine, je débute depuis
> quelques mois! J'ai réussi à mettre ce code dans une classe!
> Mais comment m'en servir dans mon programme ?
> Comment m'en servir avec une étiquette ?
> J'aurai besoin d'aide S.V.P.
> Merci!

Donnez plus d'informations sur votre demande !

Comment imprimez vous vos étiquettes ? Via l'espace de nom
System.Drawing.Printing ? Où d'une autre façon ? En pilotant une
imprimante spécifique via le port série par exemple ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr






Veuillez m'excusez, j'ai lu votre post trop vite !

Vous créez cette classe :

Public Class MonLabel
Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
pe.Graphics.RotateTransform(-90)
pe.Graphics.TranslateTransform(-Height, 0)

Using sb As System.Drawing.SolidBrush = New
SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, 0, 0)
End Using
End Sub


End Class

Vous compilez votre projet, automatiquement dès que vous passez en mode
Design d'une Form, VS2005 va ajouter dans la ToolBox un contrôle intitulé
"MonLabel". Faites donc un glisser/déplacer de ce contrôle sur votre Form
et le tour est joué !

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Annie
D'accord!
Je ne trouvais pas mon contrôle dans la liste des "Contrôles communs" dans
la boîte à outils.
Mais finalement je l'ai trouvé dans la liste des "Composants <nomDeMonProjet>"

Je l'ai essayé et lorsque je mets des caractères à l'intérieur, il s'allonge
horizontalement au lieu de verticalement. Si je mets "Locked" à False, il ne
se passe rien !!!!

Il y a quelquechose qui cloche !!!!
Pas assez d'expérience pour comprendre, mais on est tout proche de l'effet
recherché, du but !!!!

Quoi faire ????

Merci!



"Gilles TOURREAU" wrote:

Le Fri, 28 Sep 2007 14:49:01 +0200, Annie
a écrit:

> Je pense que vous m'avez mal compris!!!
> Je parle du contrôle étiquette ou d'un TextBox!
> Vous mavez répondu il n'y a pas longtemps et vous m'avez fourni un code
> d'une classe pour faire pivoter une étiquette à 90°!!!
> J'ai créé la classe mais je ne sais pas comment m'en servir avec un
> contrôle
> étiquette (Label).
> J'aimerais avoir un exemple, comment m'en servir!!!
> Tout ceci à cause d'un manque de connaissance de ma part, veuillez
> m'excuser!
>
>
> Voici la classe en question que vous m'avez envoyé :
>
> Créer une classe qui dérive de Label et de mettez ce bout de code qui
> dessine du texte à -90° :
>
> Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
> pe.Graphics.RotateTransform(-90)
> pe.Graphics.TranslateTransform(-Height, 0)
>
> Using sb As System.Drawing.SolidBrush = New
> SolidBrush(ForeColor)
> pe.Graphics.DrawString(Text, Font, sb, 0, 0)
> End Using
> End Sub
>
> Vous n'avez plus qu'à utiliser ce nouveau contrôle dans vos fenêtres...
>
>
> Merci!
>
> "Gilles TOURREAU" wrote:
>
>> Le Thu, 27 Sep 2007 21:12:01 +0200, Annie
>> a écrit:
>>
>> > Je n'ai pas beaucoup de connaissance en ce domaine, je débute depuis
>> > quelques mois! J'ai réussi à mettre ce code dans une classe!
>> > Mais comment m'en servir dans mon programme ?
>> > Comment m'en servir avec une étiquette ?
>> > J'aurai besoin d'aide S.V.P.
>> > Merci!
>>
>> Donnez plus d'informations sur votre demande !
>>
>> Comment imprimez vous vos étiquettes ? Via l'espace de nom
>> System.Drawing.Printing ? Où d'une autre façon ? En pilotant une
>> imprimante spécifique via le port série par exemple ?
>>
>> Cordialement
>>
>> --
>> Gilles TOURREAU
>>
>>
>> S.A.R.L. P.O.S
>> Le spécialiste en motoculture depuis + de 30 ans !
>> http://www.pos.fr
>>

Veuillez m'excusez, j'ai lu votre post trop vite !

Vous créez cette classe :

Public Class MonLabel
Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
pe.Graphics.RotateTransform(-90)
pe.Graphics.TranslateTransform(-Height, 0)

Using sb As System.Drawing.SolidBrush = New
SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, 0, 0)
End Using
End Sub


End Class

Vous compilez votre projet, automatiquement dès que vous passez en mode
Design d'une Form, VS2005 va ajouter dans la ToolBox un contrôle intitulé
"MonLabel". Faites donc un glisser/déplacer de ce contrôle sur votre Form
et le tour est joué !

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Avatar
Gilles TOURREAU
Le Fri, 28 Sep 2007 16:31:04 +0200, Annie
a écrit:

D'accord!
Je ne trouvais pas mon contrôle dans la liste des "Contrôles communs"
dans
la boîte à outils.
Mais finalement je l'ai trouvé dans la liste des "Composants
<nomDeMonProjet>"

Je l'ai essayé et lorsque je mets des caractères à l'intérieur, il
s'allonge
horizontalement au lieu de verticalement. Si je mets "Locked" à False,
il ne
se passe rien !!!!

Il y a quelquechose qui cloche !!!!
Pas assez d'expérience pour comprendre, mais on est tout proche de
l'effet
recherché, du but !!!!

Quoi faire ????

Merci!



Essayez avec AutoSize = False

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Annie
Cela semble bien fonctionner!
Je vais faire des tests par rapport à mes besoins!
Si j'ai d'autres problèmes, je vous le ferai savoir!
C'est ce que je voulais!

Je vous remercie de votre aide!

"Gilles TOURREAU" wrote:

Le Fri, 28 Sep 2007 16:31:04 +0200, Annie
a écrit:

> D'accord!
> Je ne trouvais pas mon contrôle dans la liste des "Contrôles communs"
> dans
> la boîte à outils.
> Mais finalement je l'ai trouvé dans la liste des "Composants
> <nomDeMonProjet>"
>
> Je l'ai essayé et lorsque je mets des caractères à l'intérieur, il
> s'allonge
> horizontalement au lieu de verticalement. Si je mets "Locked" à False,
> il ne
> se passe rien !!!!
>
> Il y a quelquechose qui cloche !!!!
> Pas assez d'expérience pour comprendre, mais on est tout proche de
> l'effet
> recherché, du but !!!!
>
> Quoi faire ????
>
> Merci!

Essayez avec AutoSize = False

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Avatar
Annie
Dernière chose à faire...
J'aimerais que le texte s'aligne vers la droite (MiddleRight dans TextAlign)
mais rien ne fonctionne dans "TextAlign". J'ai essayé différentes méthodes
mais rien ne se produit. Pourquoi cette propriété ne réagit pas ???
Comment faire ?

Merci!

"Annie" wrote:

Cela semble bien fonctionner!
Je vais faire des tests par rapport à mes besoins!
Si j'ai d'autres problèmes, je vous le ferai savoir!
C'est ce que je voulais!

Je vous remercie de votre aide!

"Gilles TOURREAU" wrote:

> Le Fri, 28 Sep 2007 16:31:04 +0200, Annie
> a écrit:
>
> > D'accord!
> > Je ne trouvais pas mon contrôle dans la liste des "Contrôles communs"
> > dans
> > la boîte à outils.
> > Mais finalement je l'ai trouvé dans la liste des "Composants
> > <nomDeMonProjet>"
> >
> > Je l'ai essayé et lorsque je mets des caractères à l'intérieur, il
> > s'allonge
> > horizontalement au lieu de verticalement. Si je mets "Locked" à False,
> > il ne
> > se passe rien !!!!
> >
> > Il y a quelquechose qui cloche !!!!
> > Pas assez d'expérience pour comprendre, mais on est tout proche de
> > l'effet
> > recherché, du but !!!!
> >
> > Quoi faire ????
> >
> > Merci!
>
> Essayez avec AutoSize = False
>
> Cordialement
>
> --
> Gilles TOURREAU
>
>
> S.A.R.L. P.O.S
> Le spécialiste en motoculture depuis + de 30 ans !
> http://www.pos.fr
>


Avatar
Gilles TOURREAU
Le Mon, 01 Oct 2007 19:39:00 +0200, Annie
a écrit:

Dernière chose à faire...
J'aimerais que le texte s'aligne vers la droite (MiddleRight dans
TextAlign)
mais rien ne fonctionne dans "TextAlign". J'ai essayé différentes
méthodes
mais rien ne se produit. Pourquoi cette propriété ne réagit pas ???
Comment faire ?

Merci!




Le code que je vous aie fourni "court-circuite" le comportement par défaut
du Label de .NET...
Etant donné que mon code dessine juste un texte à 90° sans se soucier des
autres propriétés (Dock, Anchor, TextAlign, BackColor,...etc), ces
propriétés n'auront donc aucune incidence sur le dessin du texte de votre
Label.

C'est à vous de programmer dans le dessin du contrôle où doit être
positionné le texte en fonction du TextAlign. Ceci ne devrait pas être
compliqué car c'est juste de la géométrie et des petits calculs à faire.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Annie
Je m'en doutais bien! J'avais déjà lu que cela peut arriver qu'on a plus de
contrôle sur les propriétés!

Vous dites :
C'est à vous de programmer dans le dessin du contrôle où doit être
positionné le texte en fonction du TextAlign. Ceci ne devrait pas être
compliqué car c'est juste de la géométrie et des petits calculs à faire



Est ce que cela veut dire mettre des espaces blancs en avant de mon
texte...???

Dois-je le programmer dans ma classe ou dans mon projet sur mon contrôle
créé ?

Je manque beaucoup d'expérience dans ce contexte (créer un contrôle, une
classe)

J'aimerais avoir plus d'explication!

Merci!


"Gilles TOURREAU" wrote:

Le Mon, 01 Oct 2007 19:39:00 +0200, Annie
a écrit:

> Dernière chose à faire...
> J'aimerais que le texte s'aligne vers la droite (MiddleRight dans
> TextAlign)
> mais rien ne fonctionne dans "TextAlign". J'ai essayé différentes
> méthodes
> mais rien ne se produit. Pourquoi cette propriété ne réagit pas ???
> Comment faire ?
>
> Merci!
>

Le code que je vous aie fourni "court-circuite" le comportement par défaut
du Label de .NET...
Etant donné que mon code dessine juste un texte à 90° sans se soucier des
autres propriétés (Dock, Anchor, TextAlign, BackColor,...etc), ces
propriétés n'auront donc aucune incidence sur le dessin du texte de votre
Label.

C'est à vous de programmer dans le dessin du contrôle où doit être
positionné le texte en fonction du TextAlign. Ceci ne devrait pas être
compliqué car c'est juste de la géométrie et des petits calculs à faire.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr



Avatar
Gilles TOURREAU
Le Mon, 01 Oct 2007 21:00:00 +0200, Annie
a écrit:

Je m'en doutais bien! J'avais déjà lu que cela peut arriver qu'on a plus
de
contrôle sur les propriétés!

Vous dites :
C'est à vous de programmer dans le dessin du contrôle où doit être
positionné le texte en fonction du TextAlign. Ceci ne devrait pas être
compliqué car c'est juste de la géométrie et des petits calculs à faire



Est ce que cela veut dire mettre des espaces blancs en avant de mon
texte...???



Non ! Non ! C'est du bricolage...


Dois-je le programmer dans ma classe ou dans mon projet sur mon contrôle
créé ?

Je manque beaucoup d'expérience dans ce contexte (créer un contrôle, une
classe)



Dans ce cas, je vous conseille de vous y mettre immédiatement à la POO en
prennant un bouquin avant de continuer...
Car sans aucune connaissance de la POO, il est inutile d'aller plus loin
avec .NET...


J'aimerais avoir plus d'explication!

Merci!





En fait je viens de réfléchir à une solution simple avec StringFormat
(dont je n'y avais pas pensé) (code à la main) :

Using sf As StringFormat = New StringFormat()

If TextAlign = TopCenter Then
sf.Alignement = StringAlignment.Far
sf.LineAlignment = StringAligment.Center
Else If TextAlign = TopLeft
sf.Aligement = StringAlignment.Far
sf.LineAlignement = StringAlignment.Near
Else If TextAlign = TopRight
sf.Aligement = StringAlignment.Far
sf.LineAlignement = StringAlignment.Far
Else If ...
...Gérer les autres positions...
End

'Ensuite on utilise mon code précédent mais on change le 2 dernier
paramètre de DrawString

pe.Graphics.RotateTransform(-90)
pe.Graphics.TranslateTransform(-Height, 0)

Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, ClientRectangle, sf)
End Using

End Using

Et cela devrait correspondre plus à votre besoin... (Je ne suis pas sûr de
mes traitements de positions (pas de VS sur moi), il faut y aller au
pif...).

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
1 2