Ajustar la lista desplegable para textos grandes

2107 vistas

Para calcula la medida de una cadena tendremos que crear un objeto Graphics. Estos objetos tienen que liberarse de forma explÃcita. Para hacer más grande la lista, tendremos que calcular la medida del texto más largo en el evento DropDown:



vbnet
  1. Private Sub ComboBox1_DropDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.DropDown
  2.     Dim MiEnum As IEnumerator = Me.ComboBox1.Items.GetEnumerator
  3.     Dim g As Drawing.Graphics = Me.ComboBox1.CreateGraphics
  4.     Dim Medida, MaxMedida As Single
  5.     While MiEnum.MoveNext
  6.         Medida = g.MeasureString(CType(MiEnum.Current, String), Me.ComboBox1.Font).Width
  7.         If MaxMedida < Medida Then MaxMedida = Medida
  8.     End While
  9.     g.Dispose()
  10.     Me.ComboBox1.DropDownWidth = CInt(MaxMedida) + 20
  11. End Sub