Créer une ComboBox Police Comme celle de Word [Résolu]

kikou93 384 Messages postés mardi 4 février 2014Date d'inscription 26 août 2017 Dernière intervention - 21 nov. 2016 à 13:18 - Dernière réponse : kikou93 384 Messages postés mardi 4 février 2014Date d'inscription 26 août 2017 Dernière intervention
- 22 nov. 2016 à 10:16
Bonjour
je voulais créer une ComboBox qui contient tout les polices d'écriture de Systeme (Comme celle utilisé dans Word)
Pour remplir la ComboBox Voici le code :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim fonts As New InstalledFontCollection
Dim font_f() As FontFamily = fonts.Families()
For Each ft As FontFamily In font_f
ComboBox1.Items.Add(ft.Name)
Next
End Sub

Le problème est la prochaine étape, dans la ComboBox de Word par exemple si on écrit "Tim" le mot complète s'affiche dans la ComboBox "Times New Roman" et la partie "Times New Roman" est sélectionné au cas ou vous voulais la modifier
J'ai pensé à ça :
Dim Pos as Integer = 0
Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress
Pos = ComboBox1.SelectionStart
End Sub
Private Sub ComboBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.TextChanged
For i As Integer = 0 To ComboBox1.Items.Count - 1
If Strings.Left(ComboBox1.Text, Len(ComboBox1.Text)) = Strings.Left(ComboBox1.Items(i), Len(ComboBox1.Text)) Then
ComboBox1.SelectionStart = Pos
ComboBox1.Text = ComboBox1.Text & Strings.Right(ComboBox1.Items(i), Len(ComboBox1.Text))
ComboBox1.SelectionLength = Len(ComboBox1.Text)
End If
Next
End Sub

Mais dés que j'écris la premiere lettre le mot s'affiche et il est complément sélectionné, si j'essayé de le supprimer la première valeur dans la ComboBox s'affiche
J'arrive pas a imaginer d'autre idées
ps : je sais qu'il existe une boîte de dialogue "FontDialog" mais je veux éviter de l'utiliser
Merci pour votre future aide
Afficher la suite 

1 réponse

Répondre au sujet
kikou93 384 Messages postés mardi 4 février 2014Date d'inscription 26 août 2017 Dernière intervention - 22 nov. 2016 à 10:16
+1
Utile
Bonjour,
J'ai trouvé la solution, il y a deux méthode soit par code soit en utilisant les propriétés de la ComboBox
1. Par Propriété : mettre
AutoCompleteMode = Append
AutoCompleteSource = ListItems

2. par code :
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'-------------- Remplir la ComboBox avec les Police du Systeme -----------
Dim fonts As New InstalledFontCollection
Dim font_f() As FontFamily = fonts.Families()
For Each ft As FontFamily In font_f
ComboBox1.Items.Add(ft.Name)
Next
'Choix de la méthode avec laquelle la saisie sera complété
' soit avec une liste de suggestions, soit en complétez le texte saisie ou les deux en même temps
ComboBox1.AutoCompleteMode = AutoCompleteMode.Append ' Complétez le texte saisie
ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems 'La liste avec laquelle en complète la saisie est celle remplie plus haut
End Sub

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de kikou93

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.