J'ai trouver sur le web un code permettant de faire de sa feuille une forme speciale...
Voici donc quatre petits exemples simples de feuilles redessinée.
le principe est de definir le nombre de points de la forme que vous aller dessiner puis de leurs attribuer leurs coordonnées.
Ceci en considerant que : (pour un triangle rectangle en B)
Dim drawPoints(2) As Point
drawPoints(0) = New Point(50, 0) 'represente le point A
drawPoints(1) = New Point(50, 200) 'represente le point B
drawPoints(2) = New Point(250, 200) 'represente le point C
Source / Exemple :
Imports System.Drawing.Drawing2D 'à placer en tout debut du code
Private Sub Form_etoile()
'ouais elle est pas super l'etoile, mais hein... pouvez changer les coordonnées pour faire mieux, je suis pas top fort en geometrie :)
Dim i As Integer
Dim drawTypes(9) As Byte
Dim drawPoints(9) As Point
drawPoints(0) = New Point(200, 0) 'A
drawPoints(1) = New Point(165, 100) 'B
drawPoints(2) = New Point(50, 140) 'C
drawPoints(3) = New Point(150, 170) 'D
drawPoints(4) = New Point(85, 275) 'E
drawPoints(5) = New Point(200, 225) 'F
drawPoints(6) = New Point(315, 275) 'G
drawPoints(7) = New Point(250, 170) 'H
drawPoints(8) = New Point(350, 140) 'I
drawPoints(9) = New Point(235, 100) 'J
For i = 0 To drawPoints.GetUpperBound(0)
drawTypes(i) = PathPointType.Line
Next i
Dim newregion As New GraphicsPath(drawPoints, drawTypes)
Me.Region = New Region(newregion)
End Sub
Private Sub Form_losange()
Dim i As Integer
Dim drawTypes(3) As Byte
Dim drawPoints(3) As Point
drawPoints(0) = New Point(100, 0) 'A
drawPoints(1) = New Point(50, 100) 'B
drawPoints(2) = New Point(100, 200) 'C
drawPoints(3) = New Point(150, 100) 'D
For i = 0 To drawPoints.GetUpperBound(0)
drawTypes(i) = PathPointType.Line
Next i
Dim newregion As New GraphicsPath(drawPoints, drawTypes)
Me.Region = New Region(newregion)
End Sub
Private Sub Form_triangle_rectangle()
Dim i As Integer
Dim drawTypes(2) As Byte
Dim drawPoints(2) As Point
drawPoints(0) = New Point(50, 0)
drawPoints(1) = New Point(50, 200)
drawPoints(2) = New Point(250, 200)
For i = 0 To drawPoints.GetUpperBound(0)
drawTypes(i) = PathPointType.Line
Next i
Dim newregion As New GraphicsPath(drawPoints, drawTypes)
Me.Region = New Region(newregion)
End Sub
Private Sub Form_parallelograme()
Dim i As Integer
Dim drawTypes(3) As Byte
Dim drawPoints(3) As Point
drawPoints(0) = New Point(50, 0)
drawPoints(1) = New Point(0, 200)
drawPoints(2) = New Point(250, 200)
drawPoints(3) = New Point(300, 0)
For i = 0 To drawPoints.GetUpperBound(0)
drawTypes(i) = PathPointType.Line
Next i
Dim newregion As New GraphicsPath(drawPoints, drawTypes)
Me.Region = New Region(newregion)
End Sub
Conclusion :
Bon pour l'etoile et son niveau geometrique, vous m'excuserez j'ai fait ca en tattonant, seulement pour un rendu visuel...et donc un exemple de form a 10 points.
Voila, si ca peut amuser qq1...
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.