IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[vb.net][combo][recherche]empecher la recherche automatique


Sujet :

VB.NET

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2003
    Messages : 201
    Points : 182
    Points
    182
    Par défaut [vb.net][combo][recherche]empecher la recherche automatique
    Bonjour à tous,

    Je suis sous VS2005 et je programme pour windows CE 5.0(smartdevice) j'ai cherché mais en vain...voici mon problème.

    -j'ai un combo box avec une liste d'item bien classé.
    -quand l'utilisateur clique sur une lettre, il emmagasine les lettres et effectue une recherche selon la chaine donnée (j'ai moi même programmé ma fonction de recherche pour remplacer celle intégré au combo).
    -tout fonctionne bien sauf...quand l'utilisateur veux consulter la liste du combo...alors il recois un résultat dépendant de la dernière touche enfoncé et non de la chaine au complet (la recherche intégré au controle est plus forte que ma fonction de recherche).
    exemple :
    lettre enfoncé-->ma fonction-->recherche intégré au controle
    r-->rabot-->rabot(1er mot avec r)
    a-->rabot-->amanda(1er mot avec a)
    m-->ramboard-->merde(1er mot avec m)
    b-->ramboard-->bible(1er mot avec b)
    u-->rambu-->uranus(1er mot avec u)
    s-->rambus-->sexe(1er mot avec s)

    normalement, je reçois toujours un bon résultat selon ma fonction...mais si :

    l'utilisateur utilise que des lettres ou des chiffres et demande a voir la liste des choix, on obtient le résultat de la recherche intégré au controle soit sexe dans ce cas si l'utilisateur choisis rambus rendu à la lettre s sinon, le mot affiché est le 1er trouvé avec la dernière lettre enfoncé.

    dans le fond...j'aimerai savoir si je peux annuler cette recherche intégré au combo box. merci à vous et bonne journée

  2. #2
    Membre du Club Avatar de eikeshi
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 73
    Points : 61
    Points
    61
    Par défaut
    Salut, à partir de quel controle effectues-tu la recherche ? et à partir de quel évènement déclenche tu la recherche ?

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2003
    Messages : 201
    Points : 182
    Points
    182
    Par défaut
    j'y vais a partir du keydown (touche enfoncé). merci pour l'intérêt

  4. #4
    Membre du Club Avatar de eikeshi
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 73
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par Ouija33 Voir le message
    j'y vais a partir du keydown (touche enfoncé). merci pour l'intérêt
    Est que, par hasard, tu sélectionne la chaîne complete que l'utilisateur insère avant de faire ta recherche ?
    Fais voir ton code, ça sera mieux.

  5. #5
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2003
    Messages : 201
    Points : 182
    Points
    182
    Par défaut
    eheh mais biensur que je prend toutes la chaine pour effectuer la recherche. c'est l'option de recherche intégré au combobox qui prends le dessus sur la mienne que dans 1 seul contexte bien déterminé.

    bon si ca peut aider (quoi que je ne crois pas) voici mon code (la section de recherche est dans le bas, apres la captures des autres touches importantes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
       Private Sub CmbCodeAccess_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles CmbCodeAccess.KeyDown
            Dim x As Integer = 0
            If e.KeyCode = Keys.F1 Then                                                         'si F1 est appuyé
                Call FncPasVerifie()
                Exit Sub
            End If
            If e.KeyCode = Keys.F2 Then                                                         'si F2 est appuyé
                Call FncQtDiff()
                Exit Sub
            End If
            If e.KeyCode = Keys.F3 Then                                                         'si F3 est appuyé
                Call FncQtDiffLive()
                Exit Sub
            End If
            If e.KeyCode = Keys.F4 Then                                                         'si F4 est appuyé
                Call FncRecherche()
                Exit Sub
            End If
            If e.KeyCode = Keys.Down Then                                                       'si bas est enfoncé(ne rien faire)
                Exit Sub
            End If
            If e.KeyCode = Keys.Up Then                                                         'si haut est enfoncé(ne rien faire)
                Exit Sub
            End If
            If e.KeyCode = Keys.Escape Then                                                     'si escape est enfoncé
                saisie = Nothing
                derniereR = 0
                CmbCodeAccess.SelectedItem = Nothing
                TxUPC.Focus()
                LbProcess.Text = "Scannez/entrez code UPC, TAB pour code access"
                Exit Sub
            End If
            If e.KeyCode = Keys.Enter Then                                                      'si enter est enfoncé
                x = 0
                Timer1.Interval = 100
                Timer1.Enabled = True
                Do While TabTSVCodeInventaire(x).NoCode <> Nothing                              'lecture de la table inventaire
                    If TabTSVCodeInventaire(x).CodeAccess = CmbCodeAccess.SelectedItem Then
                        If TabTSVCodeInventaire(x).NoFicheRef <> 0 Then                         'si le produit a un numéro de fiche référence
                            NoMG3 = TabTSVCodeInventaire(x).NoFicheRef
                            Call RechercheNoMG3()                                               'appel de la fonction de désignation du parent
                            Dim xx As Integer = 0
                            Do While TabTSVCodeInventaire(xx).NoCode <> Nothing                 'lecture de tsvcodeinventaire
                                If TabTSVCodeInventaire(xx).NoCode = NoCode Then                'si le code lu est celui recherche
                                    TxQtInv.Text = TabTSVCodeInventaire(xx).Quantite
                                    TxQtLive.Text = TabTSVCodeInventaire(xx).InvLive
                                    CmbCodeAccess.SelectedItem = TabTSVCodeInventaire(xx).CodeAccess
                                    PtCodeAccess = TabTSVCodeInventaire(xx).CodeAccess
                                    Exit Do
                                End If
                                xx = xx + 1
                            Loop
                        Else                                                                    'si le produit a pas de numéro de fiche référence
                            NoCode = TabTSVCodeInventaire(x).NoCode
                            TxQtInv.Text = TabTSVCodeInventaire(x).Quantite
                            TxQtLive.Text = TabTSVCodeInventaire(x).InvLive
                            CmbCodeAccess.SelectedItem = TabTSVCodeInventaire(x).CodeAccess
                            PtCodeAccess = TabTSVCodeInventaire(x).CodeAccess
                            Exit Do
                        End If
                    End If
                    x = x + 1
                Loop
                TxQtVer.Focus()
                Call BipOk()
                LbProcess.Text = "Entrez votre quantité"
                saisie = Nothing
                Exit Sub
            End If
            'Fonction de recherche de code access-------------------------------------------------------------------------------------------------------------------------
            x = derniereR
            If e.KeyCode.ToString.Length = 2 Then                                                       'si la saisie est de 2 caractères (nombre (Dx))
                saisie = saisie + e.KeyCode.ToString.Substring(1, 1)
            Else                                                                                        'si la saisie est de 1 caractère
                saisie = saisie + e.KeyCode.ToString
            End If
            Do While x <= CmbCodeAccess.Items.Count - 1 : Application.DoEvents()                        'vérification dans la table de code inventaire
                Dim verifi As String
                If CmbCodeAccess.Items(x).ToString.Length >= saisie.Length Then : Application.DoEvents() 'si la saisie est plus petite que le code inventaire
                    verifi = CmbCodeAccess.Items(x).ToString.Substring(0, saisie.Length) : Application.DoEvents()
                Else                                                                                    'si la saisie est plus grande que le code inventaire
                    verifi = "anticonstitutionnellement"
                End If
                CmbCodeAccess.Text = Nothing
                Application.DoEvents()
                Dim a As String = verifi.ToUpper.Substring(0, saisie.Length) : Application.DoEvents()
                Dim b As String = saisie.ToUpper : Application.DoEvents()
                If a = b Then : Application.DoEvents()                                                  'si la vérification est égale à la saisie
                    CmbCodeAccess.SelectedItem = CmbCodeAccess.Items(x)
                    PtCodeAccess = CmbCodeAccess.Items(x)
                    derniereR = x
                    Exit Sub
                End If
                x = x + 1
            Loop
            Call BipMessage()
            MsgBox("aucun resultat")
            saisie = Nothing
            derniereR = 0
        End Sub
    PS : j'ai éditer mon premier message pour mieux détailler et imager mon exemple. pour l'instant j'ai déjouer la recherche intégré de crosoft en ajoutant un timer de 100 d'interval qui va corriger la faute de monsieur crosoft.

Discussions similaires

  1. Recherche outil pour indenter automatiquement le code
    Par DoomTheFlame dans le forum Forms
    Réponses: 3
    Dernier message: 06/05/2008, 17h01
  2. Textbox de recherche avec saisie semi-automatique.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/11/2007, 20h55
  3. [Recherche] Banissement/débanissement IP automatique
    Par bloodangels dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 27/07/2007, 15h42
  4. recherche logiciel de fermeture automatique
    Par Nany dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 04/07/2006, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo