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'ai déjà plusieurs livres de lus mais il y a tellement des choses à retenir qu'on en perds des bouts! Alors j'essaie d'apprendre ce qui est le plus utile pour moi pour l'instant!!! Veuillez m'en excuser!!!
J'apprends quelquechose de très intéressant avec vous qui va me servir beaucoup dans le futur! Mais ce n'est pas évident!!
J'ai réussi à créer cette nouvelle classe avec une certaine difficulté et il n'y a pas d'erreur! Sauf que le contrôle ne fait plus ce qu'il faisait auparavant! Je ne vois que les 2-4 premières lettres selon l'alignement choisit! Pour les autres alignements, je ne vois plus rien de mon texte!
Que faire ? Je vous envoi le code de la classe :
Public Class LabelVertical Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs) Using sf As StringFormat = New StringFormat() If TextAlign = ContentAlignment.TopCenter Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.TopLeft Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.TopRight Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleLeft Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleCenter Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.MiddleRight Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomLeft Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomCenter Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.BottomRight Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far End If
Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor) pe.Graphics.DrawString(Text, Font, sb, ClientRectangle, sf) End Using End Using End Sub End Class
Est-ce correct? Où est mon problème?
Merci!
J'ai déjà plusieurs livres de lus mais il y a tellement des choses à retenir
qu'on en perds des bouts! Alors j'essaie d'apprendre ce qui est le plus utile
pour moi pour l'instant!!! Veuillez m'en excuser!!!
J'apprends quelquechose de très intéressant avec vous qui va me servir
beaucoup dans le futur! Mais ce n'est pas évident!!
J'ai réussi à créer cette nouvelle classe avec une certaine difficulté et il
n'y a pas d'erreur! Sauf que le contrôle ne fait plus ce qu'il faisait
auparavant! Je ne vois que les 2-4 premières lettres selon l'alignement
choisit! Pour les autres alignements, je ne vois plus rien de mon texte!
Que faire ? Je vous envoi le code de la classe :
Public Class LabelVertical
Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
Using sf As StringFormat = New StringFormat()
If TextAlign = ContentAlignment.TopCenter Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Center
ElseIf TextAlign = ContentAlignment.TopLeft Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.TopRight Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.MiddleLeft Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.MiddleCenter Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.MiddleRight Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.BottomLeft Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.BottomCenter Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.BottomRight Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Far
End If
Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, ClientRectangle, sf)
End Using
End Using
End Sub
End Class
J'ai déjà plusieurs livres de lus mais il y a tellement des choses à retenir qu'on en perds des bouts! Alors j'essaie d'apprendre ce qui est le plus utile pour moi pour l'instant!!! Veuillez m'en excuser!!!
J'apprends quelquechose de très intéressant avec vous qui va me servir beaucoup dans le futur! Mais ce n'est pas évident!!
J'ai réussi à créer cette nouvelle classe avec une certaine difficulté et il n'y a pas d'erreur! Sauf que le contrôle ne fait plus ce qu'il faisait auparavant! Je ne vois que les 2-4 premières lettres selon l'alignement choisit! Pour les autres alignements, je ne vois plus rien de mon texte!
Que faire ? Je vous envoi le code de la classe :
Public Class LabelVertical Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs) Using sf As StringFormat = New StringFormat() If TextAlign = ContentAlignment.TopCenter Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.TopLeft Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.TopRight Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleLeft Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleCenter Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.MiddleRight Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomLeft Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomCenter Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.BottomRight Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far End If
Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor) pe.Graphics.DrawString(Text, Font, sb, ClientRectangle, sf) End Using End Using End Sub End Class
Est-ce correct? Où est mon problème?
Merci!
Gilles TOURREAU
Le Mon, 01 Oct 2007 22:46:00 +0200, Annie a écrit:
J'ai déjà plusieurs livres de lus mais il y a tellement des choses à retenir qu'on en perds des bouts! Alors j'essaie d'apprendre ce qui est le plus utile pour moi pour l'instant!!! Veuillez m'en excuser!!!
J'apprends quelquechose de très intéressant avec vous qui va me servir beaucoup dans le futur! Mais ce n'est pas évident!!
J'ai réussi à créer cette nouvelle classe avec une certaine difficulté et il n'y a pas d'erreur! Sauf que le contrôle ne fait plus ce qu'il faisait auparavant! Je ne vois que les 2-4 premières lettres selon l'alignement choisit! Pour les autres alignements, je ne vois plus rien de mon texte!
Que faire ? Je vous envoi le code de la classe :
Public Class LabelVertical Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs) Using sf As StringFormat = New StringFormat() If TextAlign = ContentAlignment.TopCenter Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.TopLeft Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.TopRight Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleLeft Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleCenter Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.MiddleRight Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomLeft Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomCenter Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.BottomRight Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far End If
Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor) pe.Graphics.DrawString(Text, Font, sb, ClientRectangle, sf) End Using End Using End Sub End Class
Est-ce correct? Où est mon problème?
Merci!
Solution corrigée et testée :
If TextAlign = ContentAlignment.TopCenter Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.TopLeft Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.TopRight Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleLeft Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.MiddleCenter Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.MiddleRight Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomLeft Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.BottomCenter Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.BottomRight Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far End If
PS : Evitez de poster plusieurs fois la même demande dans un forum...
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Le Mon, 01 Oct 2007 22:46:00 +0200, Annie
<Annie@discussions.microsoft.com> a écrit:
J'ai déjà plusieurs livres de lus mais il y a tellement des choses à
retenir
qu'on en perds des bouts! Alors j'essaie d'apprendre ce qui est le plus
utile
pour moi pour l'instant!!! Veuillez m'en excuser!!!
J'apprends quelquechose de très intéressant avec vous qui va me servir
beaucoup dans le futur! Mais ce n'est pas évident!!
J'ai réussi à créer cette nouvelle classe avec une certaine difficulté
et il
n'y a pas d'erreur! Sauf que le contrôle ne fait plus ce qu'il faisait
auparavant! Je ne vois que les 2-4 premières lettres selon l'alignement
choisit! Pour les autres alignements, je ne vois plus rien de mon texte!
Que faire ? Je vous envoi le code de la classe :
Public Class LabelVertical
Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs)
Using sf As StringFormat = New StringFormat()
If TextAlign = ContentAlignment.TopCenter Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Center
ElseIf TextAlign = ContentAlignment.TopLeft Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.TopRight Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.MiddleLeft Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.MiddleCenter Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.MiddleRight Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.BottomLeft Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.BottomCenter Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.BottomRight Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Far
End If
Using sb As System.Drawing.SolidBrush = New
SolidBrush(ForeColor)
pe.Graphics.DrawString(Text, Font, sb, ClientRectangle,
sf)
End Using
End Using
End Sub
End Class
Est-ce correct? Où est mon problème?
Merci!
Solution corrigée et testée :
If TextAlign = ContentAlignment.TopCenter Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Center
ElseIf TextAlign = ContentAlignment.TopLeft Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.TopRight Then
sf.Alignment = StringAlignment.Far
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.MiddleLeft Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.MiddleCenter Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Center
ElseIf TextAlign = ContentAlignment.MiddleRight Then
sf.Alignment = StringAlignment.Center
sf.LineAlignment = StringAlignment.Far
ElseIf TextAlign = ContentAlignment.BottomLeft Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Near
ElseIf TextAlign = ContentAlignment.BottomCenter Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Center
ElseIf TextAlign = ContentAlignment.BottomRight Then
sf.Alignment = StringAlignment.Near
sf.LineAlignment = StringAlignment.Far
End If
PS : Evitez de poster plusieurs fois la même demande dans un forum...
Cordialement
--
Gilles TOURREAU
gilles.tourreau@pos.fr
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Le Mon, 01 Oct 2007 22:46:00 +0200, Annie a écrit:
J'ai déjà plusieurs livres de lus mais il y a tellement des choses à retenir qu'on en perds des bouts! Alors j'essaie d'apprendre ce qui est le plus utile pour moi pour l'instant!!! Veuillez m'en excuser!!!
J'apprends quelquechose de très intéressant avec vous qui va me servir beaucoup dans le futur! Mais ce n'est pas évident!!
J'ai réussi à créer cette nouvelle classe avec une certaine difficulté et il n'y a pas d'erreur! Sauf que le contrôle ne fait plus ce qu'il faisait auparavant! Je ne vois que les 2-4 premières lettres selon l'alignement choisit! Pour les autres alignements, je ne vois plus rien de mon texte!
Que faire ? Je vous envoi le code de la classe :
Public Class LabelVertical Inherits Label
Protected Overrides Sub OnPaint(ByVal pe As PaintEventArgs) Using sf As StringFormat = New StringFormat() If TextAlign = ContentAlignment.TopCenter Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.TopLeft Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.TopRight Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleLeft Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleCenter Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.MiddleRight Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomLeft Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomCenter Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.BottomRight Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far End If
Using sb As System.Drawing.SolidBrush = New SolidBrush(ForeColor) pe.Graphics.DrawString(Text, Font, sb, ClientRectangle, sf) End Using End Using End Sub End Class
Est-ce correct? Où est mon problème?
Merci!
Solution corrigée et testée :
If TextAlign = ContentAlignment.TopCenter Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.TopLeft Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.TopRight Then sf.Alignment = StringAlignment.Far sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.MiddleLeft Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.MiddleCenter Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.MiddleRight Then sf.Alignment = StringAlignment.Center sf.LineAlignment = StringAlignment.Far ElseIf TextAlign = ContentAlignment.BottomLeft Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Near ElseIf TextAlign = ContentAlignment.BottomCenter Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Center ElseIf TextAlign = ContentAlignment.BottomRight Then sf.Alignment = StringAlignment.Near sf.LineAlignment = StringAlignment.Far End If
PS : Evitez de poster plusieurs fois la même demande dans un forum...
Cordialement
-- Gilles TOURREAU
S.A.R.L. P.O.S Le spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr