Ho capito. Grazie mille.
Ho provato a metterci mano un attimo e ho scritto questo codice:
codice:
Private Sub Form_Load()
Elementi
'Verifico che l'immagine interna sia superiore o inferiore
'a quella esterna e abilito/disabilito di conseguenza la scrollbar
If Picture1.ScaleHeight > Picture2.ScaleHeight Then
VScrollBar1.Enabled = False
Else
VScrollBar1.Min = 0
VScrollBar1.Max = (Picture2.ScaleHeight - Picture1.ScaleHeight)
End If
End Sub
Private Sub VScrollBar1_Scroll()
Picture2.Top = -VScrollBar1.Value
End Sub
Private Sub VScrollBar1_Change()
Call VScrollBar1_Scroll
End Sub
Private Sub Elementi()
'Genera in automatico fino a 10 volte una cella textbox
'in verticale verso il basso e la popola con il valore k.
'Aumento anche il valore della Picture2 (picture interna)
Dim n As Integer
Dim k As Integer
'significa che voglio aggiungere 10 controlli:
n = 10
For k = 1 To (n - 1)
'carico il nuovo Text1:
Load codice(codice.Count)
' sposto il nuovo Text1 sotto il precedente:
codice(codice.Count - 1).Move codice(k - 1).Left, codice(k - 1).Top + (codice(k - 1).Height + 50)
' poi li rendo visibili:
codice(codice.Count - 1).Visible = True
codice(codice.Count - 1).Text = k
Picture2.Height = Picture2.Height + 335
Next k
End Sub
Con questo codice semplicissimo il tutto funziona a meraviglia...ossia la picture interna si espande in relazione degli elementi che sono al suo interno (migliorabile sicuramente assegnando il livello Height al valore .Top dell'ultima textbox più un certo valore).
L'unica cosa che non "funziona bene" è l'indicatore della scrollbar. Ossia se la PictureInterna è inferiore a quella Esterna non ci sono problemi, la ScrollBar viene disabilitata (e comunqeu l'indicatore occupa tutta la Scroll). Invece se la Picture Interna è più grande dell'esterna, l'indicatore si assotiglia del tutto, funzionando senza probleme, ma il passo in cui si muove è minimale.
Come faccio a far sì che questo sia effettivamente uguale a (altezza picture interna - altezza picture esterna)?