Est-ce que l'on peut en Visual Basic 2005, mettre une étiquette (label) ou un TextBox verticalement? Autrement dit, prendre l'étiquette horizontal et la faire tourner de 90, 180, 240, 360 degré?
Comment faire ?
Est-ce que l'on peut en Visual Basic 2005, mettre une étiquette (label) ou un TextBox verticalement? Autrement dit, prendre l'étiquette horizontal et la faire tourner de 90, 180, 240, 360 degré?
Comment faire ?
Bonjour.
Tu peux te faire un label personnalisé dans lequel tu géres le dessin comme ceci :
L'idée c'est d'appliquer une rotation au graphics du control via une matrix de transformation (dans l'exemple intAngle c'est un integer qui définit ton angle).
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 Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) Dim foFormat As New StringFormat() foFormat.Alignment = StringAlignment.Center foFormat.LineAlignment = StringAlignment.Center Dim m As New System.Drawing.Drawing2D.Matrix m.Rotate(intAngle) ' intAngle c'est ton angle à toi e.Graphics.Transform = m e.Graphics.DrawString(Me.Text, Me.Font, New SolidBrush(Me.ForeColor), Me.ClientRectangle, foFormat) foFormat.Dispose() m.Dispose() End Sub
Mais bon le résultat est assez moche (illisible) je trouve et faut positionner autosize à false sinon c'est raté !
Pour le vertical, creuse du côté de StringFormatFlags.DirectionVertical.
Cdt.
Partager