PictureBox bewegen

20/08/2009 - 11:48 von Susann Markward | Report spam
Hallo,

ich habe auf einer Form eine PictureBox mit einem Bild. Diese möchte ich
über die Form bewegen. Das funktioniert mit folgendem Code auch prima!

Das Problem:
Ich kann die PictureBox auch so verschieben, dass sie außerhalb der Form
und des Bildschirms liegt. So dass sie dann, nach dem Loslassen der
Maus, nicht mehr zu sehen, anklickbar und zu verschieben ist.

Wie erreiche ich, dass man die PictureBox nur maximal bis zum Rand der
Form bewegen kann, also so, dass die PictureBox immer innerhalb der Form
bleibt?

,
|' Picture2 frei positionierbar
|Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, _
| X As Single, Y As Single)
|
| ' Ausgangskoordinaten der Maus speichern
| XPos = X
| YPos = Y
|
|End Sub
|
|Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, _
| X As Single, Y As Single)
|
| ' Button verschieben, wenn Maustaste gedrückt
| If Button = vbLeftButton Then
| Picture2.Move Picture2.Left + X - XPos, Picture2.Top + Y - YPos
| End If
|
|End Sub
`

Mit freundlichen Grüßen
Susann
 

Lesen sie die antworten

#1 Susann Markward
20/08/2009 - 11:57 | Warnen spam
SRY für das evtl. doppelte Posting. Aber es gibt ja immer noch das
News-Server-Problem bei Microsoft. Deswegen noch einmal direkt über
msnews.microsoft.com.

Hallo,

ich habe auf einer Form eine PictureBox mit einem Bild. Diese möchte ich
über die Form bewegen. Das funktioniert mit folgendem Code auch prima!

Das Problem:
Ich kann die PictureBox auch so verschieben, dass sie außerhalb der Form
und des Bildschirms liegt. So dass sie dann, nach dem Loslassen der
Maus, nicht mehr zu sehen, anklickbar und zu verschieben ist.

Wie erreiche ich, dass man die PictureBox nur maximal bis zum Rand der
Form bewegen kann, also so, dass die PictureBox immer innerhalb der Form
bleibt?

,
|' Picture2 frei positionierbar
|Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, _
| X As Single, Y As Single)
|
| ' Ausgangskoordinaten der Maus speichern
| XPos = X
| YPos = Y
|
|End Sub
|
|Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, _
| X As Single, Y As Single)
|
| ' Button verschieben, wenn Maustaste gedrückt
| If Button = vbLeftButton Then
| Picture2.Move Picture2.Left + X - XPos, Picture2.Top + Y - YPos
| End If
|
|End Sub
`

Mit freundlichen Grüßen
Susann

Ähnliche fragen