Inserisci in una form un bottone (Command1) e copia quasto codice:
'-----------------------
Option Explicit
Dim perc_w As Double 'percentuale larghezza
Dim perc_h As Double 'percentuale altezza
Private Sub Form_Load()
'All'avvio del form calcolo la posizione (percentuale) del Bottone (Command1) rispetto al Form (Me)
perc_w = (Command1.Left + (Command1.Width / 2)) / Me.ScaleWidth
perc_h = (Command1.Top + (Command1.Height / 2)) / Me.ScaleHeight
'NB: Ho calcolato in quasto modo:
'Percentuale_larghezza=(posizione sinistra del bottone + metà della sua larghezza) / larghezza interna del form
'Percentuale_altezza=(posizione alto del bottone + metà della sua altezza) / altezza interna del form
'In pratica aggiungendo alla posizione sinistra e alla posizione alto del bottone, le metà, rispettivamente
'della largezza e dell'altezza, ottengo le coordinate del punto centrale del bottone.
'Farò quindi sempre riferimento a tale punto, anche in fase di resize del Form
End Sub
Private Sub Form_Resize()
Dim tmp_w As Double
Dim tmp_h As Double
'Calcolo la nuova posizione in proporzione alle percentuali calcolate all'inizio:
tmp_w = (perc_w * Me.ScaleWidth) - (Command1.Width / 2)
tmp_h = (perc_h * Me.ScaleHeight) - (Command1.Height / 2)
'Sposto il bottone col metodo Move
Command1.Move tmp_w, tmp_h
'NB: Nel calcolo della nuova posizione devo ricordarmi di togliere le metà di altezza
'e larghezza del bottone in quanto le percentuali calcolate inizialmente fanno riferimento
'alle coordinate del punto centrale del bottone, mentre il metodo Move utilizza la
'posizione del punto in alto a sinistra (proprietà Top e Left)
End Sub
'------------------------
Il progetto VB contenente questo programma puoi scaricarlo all'indirizzo
http://web.tiscalinet.it/pinksoft/download/esempio.htm
Al ridimensionamento del form, il bottone (Command1) dovrebbe riposizionarsi in proporzione.
Fammi sapere come va... Eventualmente posso passarti alcune dritte per effettuare tale operazione dinamicamente su tutti i controlli presenti sulla form.
Ciao, a presto!!![]()