Label orienté (vertical ou tout autre angle)

Soyez le premier à donner votre avis sur cette source.

Vue 10 964 fois - Téléchargée 773 fois

Description

A l'origine je voulais un label vertical.
Les sources dispos n'offraient pas la posssibilité de choisir l'alignement du texte dans le contrôle.
En dévellopant cette possibilité, j'ai choisi de pouvoir aussi choisir l'angle du texte, et de ne pas le limiter à 90° (270° plus exactement !).

La méthode ROTATE de la matrice graphique n'est alors pas adaptée, car la rotation se fait depuis le coin supérieur gauche du contrôle.

J'ai choisi la démarche suivante, expliquée en détail dans les commentaires de la source :

On détermine les dimensions du texte dans un repère orthonormé d'origine le centre du texte.
Puis on calcule ces dimensions après rotation (convertion en coordonées polaires, rotation, converstion en coordonnées rectangulaire).
Ensuite on détermine la position de l'origine du repère dans le contrôle en fonction de l'alignement choisi.
Enfin on TRANSFORM la matrice graphique et on lui applique une rotation par ROTATEAT.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

nvoisn
Messages postés
26
Date d'inscription
lundi 23 janvier 2012
Statut
Membre
Dernière intervention
29 septembre 2014
4 -
Salut!

Génial!! Merci beaucoup!!
benrivet
Messages postés
1
Date d'inscription
dimanche 26 avril 2009
Statut
Membre
Dernière intervention
26 avril 2009
-
Excellent!

Tu devrais par contre ajouter ceci dans ton contrôle :

Public Sub New()
Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
End Sub

Ceci permettra de supporter la transparence du contrôle.
pilpoil21
Messages postés
2
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
15 avril 2011
-
Tres bien .
Concernant ta remarque

'Taille automatique en fonciton du texte
'REMARQUE : JE NE SAIS PAS POURQUOI SI JE NOMME CETTE PROPRIETE "AutoSize"
'ELLE N'APPARAIT PAS DANS LA FENETRE DES PROPRIETES !
<Category("Disposition"), Description("Active le redimensionnement automatique en fonction du texte."), DefaultValue(False)> _
Public Shadows Property autoSize() As Boolean
Get
Return m_autosize
End Get
Set(ByVal value As Boolean)
m_autosize = value
Me.Invalidate()
End Set
End Property

il faut mettre
_
Public Shadows Property AutoSize() As Boolean
Get
Return m_autosize
End Get
Set(ByVal value As Boolean)
m_autosize = value
Me.Invalidate()
End Set
End Property

A+
Hello,

On the off chance that you may see this, thank you. You have saved me from so much aggravation. My work is open source, so I don't expect much from it. Regardless, this is a huge help. Thank you again,
Paradocs
PS I should know French, we studied it in school; been a long time since school.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.