Créer une ComboBox Police Comme celle de Word

Résolu
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 21 nov. 2016 à 13:18
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 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

1 réponse

kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
22 nov. 2016 à 10:16
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

1
Rejoignez-nous