public Class Form1
Private count As Integer = 0
Private Class datarectangle
Public left As Integer
Public top As Integer
Public width As Integer
Public height As Integer
'tu peux ajouter le brush pour remplir le rectangle
Public thepen As System.Drawing.Brush
'le constructeur
Public Sub New(ByVal leftrect As Integer, ByVal toprect As Integer, ByVal widthrect As Integer, ByVal heightrect As Integer, ByVal penrect As System.Drawing.Brush)
left = leftrect
top = toprect
width = widthrect
height = heightrect
thepen = penrect
End Sub
End Class
Private listdatarectangle As New List(Of datarectangle)
Private Sub FillListDataRectangle()
'on crée une instance de datarectangle
Dim rec As datarectangle
rec = New datarectangle(110, 10, 200, 50, Brushes.Cyan)
listdatarectangle.Add(rec)
rec = New datarectangle(10, 50, 100, 250, Brushes.Blue)
listdatarectangle.Add(rec)
rec = New datarectangle(310, 50, 100, 250, Brushes.BlueViolet)
listdatarectangle.Add(rec)
rec = New datarectangle(410, 250, 400, 250, Brushes.Blue)
listdatarectangle.Add(rec)
rec = New datarectangle(40, 150, 300, 250, Brushes.Red)
listdatarectangle.Add(rec)
rec = New datarectangle(350, 50, 100, 250, Brushes.Gold)
listdatarectangle.Add(rec)
End Sub
Private Sub DrawRectangle(ByRef gr As System.Drawing.Graphics, ByVal count As Integer)
For iter = 0 To count - 1
gr.FillRectangle(listdatarectangle(iter).thepen, listdatarectangle(iter).left, listdatarectangle(iter).top, listdatarectangle(iter).width, listdatarectangle(iter).height)
Next
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
FillListDataRectangle()
End Sub
Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseClick
If count < listdatarectangle.Count Then
count += 1
Else
DirectCast(sender, Button).Enabled = False
End If
Refresh()
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
If count > 0 Then
DrawRectangle(e.Graphics, count)
End If
End Sub
End Class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
Me.Cursor = Cursors.Arrow
For iter = 0 To count - 1
If New Rectangle(listdatarectangle(iter).left, listdatarectangle(iter).top, listdatarectangle(iter).width, listdatarectangle(iter).height).Contains(e.X, e.Y) Then
Me.Cursor = Me.Cursor = Cursors.Hand
End If
Next
End Sub
2 déc. 2013 à 22:26
c'est exactement ce qu'il me faut !
t'est génial !
je ne met pas tout de suite le sujet en résolut au cas ou j'aurais besoin toi
2 déc. 2013 à 23:00
quand je déplace mon curseur sur mon rectangle (que se soit le premier tracer ou le dernier) mon curseur change
le pb c'est que la variable rec agis seulement sur le dernier rectangle tracé comment puis je faire pour agir tout aussi bien sur le premier que sur le dernier tracé ??
2 déc. 2013 à 23:27
explique toi
Modifié par dj naoki le 2/12/2013 à 23:44
ex:
pouvoir avoir accès au propriété top,left ... de chaque rectangle.
l'idéale sa serais que je puisse faire comme un tableau pour la variable rec ( si c'est pas déjà le cas )
ex:
rec(0).top
rec(1).left
ou alors (la le must du must !)
designer tout les rectangles pour faire un truc du genres :
merci a toi pour ta disponibilité et ta paissance :p