era proprio quello che non volevo sentire

il metodo suggeritomi è il migliore e precisiso, però nel mio caso mi risulta complicato implementarlo in quanto gli oggetti da scalare sono tanti e vengono creati e cancellati dinamicamente, avrei dovuto tener conto anche di questo (per ciò mi sono dilungato nella spiegazione)...
di solito uso Il tag del controllo per memorizzare valori personali riferiti a tale controllo ( e in questo caso sarebbe stato utile al caso) ma putroppo l'ho già utilizzato per altre funzioni (ridimenzionamento e spostamento degli oggetti tramite mouse durante l'esecuzione )

alla fine ho optato per un valore percentuale di zoom per ogni pagina distinta che viene memoriazzato del Tag del Pannello contenitore e ricalcolato a ogni "scale" effettuato agli oggetti contenuti ( a mo di percentuale). Così mi permette di ritrovarmi tale fattore anche per i controlli da creare nuovi..insomma mi permette di lavorare costantemente con quella percentuale di zoom impostata nella textbox Zoom_Percent.Text come valore corrente per la pagina attiva...ed è possibile anche settarlo a piacimento..

se può interessare e risulta comprensibile , la procedura postata l'ho evoluta in questo modo :
codice:
    Private Sub Zoom_Click(ByVal sender As System.Object, ByVal e As System.EventArgs, Optional ByVal Percent As String = Nothing) Handles Zoom_out.Click, Zoom_in.Click

        Dim F As Single = 25 / 100, M As Single = 1 + IIf(sender.name.Contains("out"), -F, F)
        Dim Aggiorna As Boolean = False
        Do
            For Each Ctrl As Control In GetControls(Tab.SelectedTab, "Panel")
                If Not IsNothing(Percent) Then M = 1 + (Val(Percent) - Val(Ctrl.Tag)) / 100
                For Each Ctrl2 As Control In GetControls(Ctrl, "TableLayoutPanel")
                    Ctrl2.Scale(New SizeF(M, M)) : Aggiorna = True
                Next
                If Aggiorna Then
                    Ctrl.Tag = Val(Ctrl.Tag) * M
                    Zoom_Percent.Text = Format(Val(Ctrl.Tag), "0.00 \%")
                    Aggiorna = False
                End If
            Next
            If IsNothing(Percent) Then Exit Do
        Loop Until Val(Percent) = Val(Zoom_Percent.Text)
    End Sub
ho aggiunto un parametro optional che fornisce la percentuale (quando passato), e un cilclo che cicla fino a quando non raggiunge l'effettiva percentuale passatoli come argomento..
lo so è un po ostico ma che ci potevo fare!
quando dev'essere chiamata per settare una determinata percentuale (impostata nella TextBox con nome Zoom_percent, verrà chiamata così:
codice:
        Call Zoom_Click(sender, e, Zoom_Percent.Text)