Oppure

Loading
23/06/08 13:45
alceus
Ciao, ho un problema:
in una form ho un oggetto che, attraverso i tasti della tastiera, faccio muovere sulla form. Volendo piazzare nella form una barra di scorrimento, come faccio a farla scorrere quando l'oggetto raggiunge il margine (ad esempio inferiore) della form, in modo da poterlo ancora vedere?
Spero di essere stato chiaro
Grazie
aaa
23/06/08 15:30
antometal
una soluzione è quella di mettere in una picturebox (molto vasta)tt gli altri oggetti, e poi muovi la picturebox sul form, e muovendo la picturebox si muovono di conseguenza anche gli oggetti al suo interno
aaa
23/06/08 15:47
alceus
Mi dispiace, ma con la picture box non funziona proprio:addirittura la stessa picture box non si muove...:(
aaa
23/06/08 15:49
antometal
passail codice e vediamo cosa nn va
aaa
23/06/08 15:53
alceus
Ok
Option Explicit
Dim k As Integer ' Proprietà Top della Picture1
Dim j As Integer ' Proprietà Left della Picture1
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
k = Picture1.Top
j = Picture1.Left
If KeyCode = vbKeyUp Then
Picture1.Top = k - 3000
End If
If KeyCode = vbKeyDown Then
Picture1.Top = k + 3000
End If
If KeyCode = vbKeyLeft Then
Picture1.Left = j - 3000
End If
If KeyCode = vbKeyRight Then
Picture1.Left = j + 3000
End If
End Sub
aaa
23/06/08 15:55
alceus
ho impostato 3000 come distanza, ma è un numero indicativo, se ne può mettere anche un altro...
aaa
23/06/08 16:04
antometal
nn va perchè fai eseguire il codice quando si verifica l' evento keydown del form

invece devi spostare la picturebox quando l' oggetto che devi muovere scende sotto il livello dela form
aaa
23/06/08 16:11
antometal
del tipo
Private Sub Command1_Click()
    If txt.Top + txt.Height >= Picture1.Height Then
        Picture1.Top = Picture1.Top + 300
    Else
        txt.Top = txt.Top + 300
    End If
End Sub
aaa