[VB] Einzelne Linien löschen

shady.

Cadet 4th Year
Registriert
Jan. 2006
Beiträge
67
Hi

alsoo, ich hab ein kleines Problem, und zwar möchte ich ein Programm schreiben, bei dem man wie in Paint Rechtecke in eine PictureBox ziehen kann. Eine PictureBox hab ich schon, Rechtecke kann ich auch schon zeichnen, wenn man die einzelnen Koordinaten vom Benutzer eingeben läßt. Die PicBox hab ich auch schon in ein Koordinatenkreuz eingeteilt.
Hier ist das, was ich schon habe:
Code:
Private Sub picKoo_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Die Koordinaten werden in eine ganzzahlige Zahl umgewandelt, die wiederrum in
'einen String umgewandelt werden. Sobald also die Maus über der Picture
'Box bewegt wird, werden die Koordinaten in den Labels ausgegeben.
lblX.Caption = Str$(Int(X))
lblY.Caption = Str$(Int(Y))
If Button = vbLeftButton Then
picKoo.Line (x2, y2)-(X, Y), , B
End If
End Sub
Wenn man direkt vor dem Befehl "picKoo.Line(x2, y2)-(X,Y), , B" "picKoo.Cls" aufruft, also den gesamten Inhalt löscht, kann man wenigstens nur ein Rechteck ziehen. Aber er löscht dann immer die vorherigen Rechtecke, die gezeichnet wurden. Ruft man den Befehl nicht auf, macht das Programm ganz viele Rechtecke. Kann man vll die einzelnen Linien löschen, die zu viel sind?
Wär nett wenn ihr ne Lösung hättet.
 
Zuletzt bearbeitet:
ich glaube es liegt an der MouseMove subfunktion.
füge den if befehl doch mal bei einer MouseDown sub ein.

bei der MouseMove sub fängt er bei jeder kleinsten bewegung der maus wieder neu an,
das ist bei der MouseDown sub nicht so.

die labels kannst du dort lassen, die koordinaten sollen ja bei jeder bewegung erneuert werden.
 
aber dann kann ich ja keine rechtecke "ziehen", wenn ich ne mousedown sub nehme. ich muss da ja irgendwie mit mousemove arbeiten. halt wie bei Paint. da kann man auch mit der maus n rechteck in das fenster malen.
 
Zurück
Oben