VB.NET – Liste déroulante / combobox largeur automatique en fonction items / contenu

Private Sub cbSaisine_DropDown(sender As System.Object, e As System.EventArgs) Handles cbSaisine.DropDown

Dim senderComboBox As ComboBox = DirectCast(sender, ComboBox)

Dim width As Integer = senderComboBox.DropDownWidth

Dim g As Graphics = senderComboBox.CreateGraphics()

Dim font As Font = senderComboBox.Font

Dim vertScrollBarWidth As Integer = If((senderComboBox.Items.Count > senderComboBox.MaxDropDownItems), SystemInformation.VerticalScrollBarWidth, 0)

Dim newWidth As Integer

For Each s As DataRowView In DirectCast(sender, ComboBox).Items

newWidth = CInt(g.MeasureString(s(1).ToString, font).Width) + vertScrollBarWidth

If width < newWidth Then

width = newWidth

End If

Next

senderComboBox.DropDownWidth = width

End Sub

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s