Saisie Semi-Automatique dans un textbox en vb.net [Résolu]

jabranekarima - 24 mai 2013 à 13:22 - Dernière réponse :  jabranekarima
- 27 juin 2013 à 18:12
Bonjour,
J'ai un textBox auquel je veux appliquer la saisie semi-automatique dont la source est tout ce qui est déjà tappé dans ce champ, j'ai affecter à AutoCompleteMode=SaggestAppend et à AutoCompletSource=HistoryList. Mais ça marche pas Par contre si j'utilise AutoCompleteSource=CustomSource et je remplis AutoCompleteCustomSource par une liste de mots ça marche très bien.

Merci de m'aider
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
Utilisateur anonyme - 24 mai 2013 à 17:57
3
Merci
j'espère qu'elle n'est pas cassée

Mais si, justement sinon j'aurais deviné ce que tu voulais faire...

Essaie donc ce code (malgré les centaines d'exemples sur le site):
Public Class Form1
    Dim MySource As New AutoCompleteStringCollection()

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Dim Str(0) As String
        For Each Ligne In MySource
            Str(Str.GetUpperBound(0)) = Ligne
            ReDim Preserve Str(Str.GetUpperBound(0) + 1)
        Next
        System.IO.File.WriteAllLines("c:\users" & Environment.UserName.ToString & "\desktop\AutoCompleteSource.txt", Str)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            Dim Str() As String = System.IO.File.ReadAllLines("c:\users" & Environment.UserName.ToString & "\desktop\AutoCompleteSource.txt")
            For Each Ligne In Str
                MySource.Add(Ligne.ToString)
            Next
            TextBox1.AutoCompleteCustomSource = MySource
        Catch ex As Exception
        End Try

        TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
        TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
    End Sub

    Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
        If e.KeyCode = Keys.Enter Then
            MySource.Add(TextBox1.Text)
            TextBox1.AutoCompleteCustomSource = MySource
            TextBox1.Clear()
        End If
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub
End Class


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 24 mai 2013 à 14:57
0
Merci
Bonjour,
la source est tout ce qui est déjà tappé dans ce champ

Quel champ? le textbox? multiline donc?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
jabranekarima - 24 mai 2013 à 15:10
0
Merci
le champ est le textbox et n'est pas multiligne
Commenter la réponse de jabranekarima
Utilisateur anonyme - 24 mai 2013 à 15:20
0
Merci
Je ne comprends pas bien dans ce cas;
Tu veux suggérer la saisie du même texte qui est en cours de rédaction ???

Il ne peut être autre que la saisie déjà rédigée.
A moins d'avoir une boule de cristal pour deviner quel est/sont le(s) mot(s) qu'il doit suggérer...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
jabranekarima - 24 mai 2013 à 15:56
0
Merci
par exemple si je tape un nom commençant par la lettre "k" , apparaît une liste de mots suggérés qui sont des mots déjà tapés dans ce champ sinon on ajoute le nouveau nom saisi à la liste
Commenter la réponse de jabranekarima
Utilisateur anonyme - 24 mai 2013 à 16:52
0
Merci
Teste ce exemple, tu renseignes le textbox puis appuie sur entrée, regarde si ça te dit quelque chose car j'ai peur de ne pas avoir bien compris....

Public Class Form1
Dim MySource As New AutoCompleteStringCollection()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
        TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
    End Sub

Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
        If e.KeyCode = Keys.Enter Then
            MySource.Add(TextBox1.Text)
            TextBox1.AutoCompleteCustomSource = MySource
        End If
        TextBox1.Clear()
    End Sub
End Class



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 24 mai 2013 à 16:54
0
Merci
Pardon,
le "clear" de la textbox doit être dans le if/end if
  Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
        If e.KeyCode = Keys.Enter Then
            MySource.Add(TextBox1.Text)
            TextBox1.AutoCompleteCustomSource = MySource
            TextBox1.Clear()
        End If



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
jabranekarima - 24 mai 2013 à 17:09
0
Merci
Merci pour votre aide , mais j'ai déjà essayé ce code ça marche très bien mais quand je redémarre l'application je perd l'ancien historique du champ.
Commenter la réponse de jabranekarima
Utilisateur anonyme - 24 mai 2013 à 17:14
0
Merci
Bien sur que tu le perds !!!

Et je dois le deviner, que tu veux garder l'historique ???

Tu ne vas pas y croire, mon chat est monté sur la table et a fait tomber ma boule de cristal par terre... encore une fois...

Tu devrais donc enregistrer l'historique dans un fichier par exemple...
Et à chaque démarrage tu charges le fichier.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
jabranekarima - 24 mai 2013 à 17:18
0
Merci
ooh non j'espère qu'elle n'est pas cassée ^^ , oui je veux garder l'historique si possible :) , mais je sais pas comment faire avec un fichier,
Commenter la réponse de jabranekarima
jabranekarima - 24 mai 2013 à 18:09
0
Merci
Oui ça Marche Merci Infiniment.
Commenter la réponse de jabranekarima
Utilisateur anonyme - 24 mai 2013 à 19:22
0
Merci
Oui... alors, sans fichier qui s'enregistre:

- Double-clique sur my project (dans l'explorateur de solutions)
- Onglet paramètre (à gauche)
- Dans le Nom tu mets AutoCompListe , tu laisses le reste comme c'est

Puis tu fais ça:

Public Class Form1
    Dim MySource As New AutoCompleteStringCollection()

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Dim Str(0) As String
        For Each Ligne In MySource
            Str(Str.GetUpperBound(0)) = Ligne
            ReDim Preserve Str(Str.GetUpperBound(0) + 1)
        Next
        My.Settings.AutoCompListe = String.Join(";", Str)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Str() As String
        Str = My.Settings.AutoCompListe.Split(";")
        For Each Mot In Str
            MySource.Add(Mot)
        Next
        TextBox1.AutoCompleteCustomSource = MySource
        TextBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
        TextBox1.AutoCompleteMode = AutoCompleteMode.Suggest
    End Sub

    Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
        If e.KeyCode = Keys.Enter Then
            MySource.Add(TextBox1.Text)
            TextBox1.AutoCompleteCustomSource = MySource
            TextBox1.Clear()
        End If
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

    End Sub
End Class


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
jabranekarima - 27 juin 2013 à 15:10
0
Merci
Bonjour,
Merci de m'expliquer de quel Onglet paramètre parlez-vous et de quel nom .
Cordialement
Commenter la réponse de jabranekarima
Utilisateur anonyme - 27 juin 2013 à 17:16
0
Merci
Bonjour,

mais je sais pas comment faire avec un fichier,



C'est expliqué, et avec des exemples, dans l'aide. Juste à écrire fichier texte dans la petite case du texte à rechercher.

Et puis le http://www.vbfrance.com/reglement.aspx dit que tu dois produire ton code.
Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 27 juin 2013 à 17:18
0
Merci
Bonjour,

- Double-clique sur my project (dans l'explorateur de solutions)
- Onglet paramètre (à gauche)
- On va créer un nouvel paramètre qui s'appelle 'AutoCompListe'
- Dans le Nom tu mets AutoCompListe , tu laisses le reste comme c'est


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
jabranekarima - 27 juin 2013 à 18:12
0
Merci
Acive qui me sauve toujours Merci beaucoup pour votre aide , ça marche maintenant.
Commenter la réponse de jabranekarima

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.