Dimensionare dinamicamente un controllo in base al testo (WinForm)

pubblicato il 08/04/2008

Oggi mi è capitato un caso abbastanza particolare, di certo che non avevo mai dovuto affrontare prima: una textbox (in sola lettura) doveva essere ridimensionata insieme al testo che avrebbe accolto.

Dopo una veloce ricerca su Google, credevo di avere trovato una soluzione efficace; purtroppo chi ha scritto l'esempio ha omesso di indicare un paio di dichiarazioni, senza le quali il mio castello di illusioni crollava. Dopo una dose di smoccolamenti e tentativi, finalmente credo di esserne venuto a capo, e qui presento il codice:

  Private Function GetSizeControl(ByVal origin As String, ByVal myFont As System.Drawing.Font) As System.Drawing.SizeF

     Dim graph As System.Drawing.Graphics

    graph = System.Drawing.Graphics.FromHwnd(Me.Handle)

    Return graph.MeasureString(origin, myFont)

  End Function