begin process at 2012 02 14 13:54:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > SAISIE SEMI-AUTOMATIQUE DES COMBOS ACCESS EN VB .NET

SAISIE SEMI-AUTOMATIQUE DES COMBOS ACCESS EN VB .NET


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Source .NET ( DotNet ) Niveau :Débutant Date de création :15/08/2003 Date de mise à jour :15/08/2003 13:55:35 Vu :9 441

Auteur : Ergil

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Bonjour à tous,

qui n'a pas déjà été frustré par les combos sous VB, car on ne peut pas taper quelques lettres pour sélectionner automatiquement le premier élément de la liste qui correspond. Comme sous access quoi !

Ce code n'est pas de moi à l'origine (http://www.vbfrance.com/article.aspx?ID=4015), mais je l'ai adapté à VB .NET car il est vraiment trop pratique (merci encore à DeathAngel pour la source VB 6).

J'espère qu'il aidera des programmeur en herbe comme moi.
@++  

Source

  • ' "" REMARQUE A SUPPRIMER
  • ' "" Cette procédure est à appeler sur le KeyUp de la ComboBox, comme suit
  • If (e.KeyValue() >= Keys.A And e.KeyValue() <= Keys.Z) Then
  • AutoSelection(Me.CBox.Text, Me.CBox)
  • End If
  • ' "" FIN REMARQUE
  • Sub AutoSelection(ByVal rstrValeurSaisie As String, ByVal rctlCombo As ComboBox)
  • ' "" La fonction complète automatiquement la saisie en fonction de la liste du combobox
  • Dim strTemp As String
  • Dim i As Integer
  • Dim n As Integer
  • Dim intLongueur As Integer
  • On Error GoTo AutoSelection_Err
  • n = rctlCombo.Items.Count - 1
  • intLongueur = Len(rstrValeurSaisie)
  • With rctlCombo
  • For i = 0 To n
  • If StrComp(Microsoft.VisualBasic.Left(.Items.Item(i), intLongueur), rstrValeurSaisie, vbTextCompare) = 0 Then
  • ' "" On a trouvé un élément qui commence comme la valeur saisie
  • ' "" on le sélectionne
  • .SelectedIndex = i
  • ' "" On surligne la fin du mot
  • .SelectionStart = intLongueur
  • .SelectionLength = Len(.Text) - intLongueur
  • Exit For
  • End If
  • Next i
  • End With
  • AutoSelection_End:
  • Exit Sub
  • AutoSelection_Err:
  • MsgBox(Err.Number & " : " & Err.Description)
  • Resume AutoSelection_End
  • Resume
  • End Sub
' "" REMARQUE A SUPPRIMER
' "" Cette procédure est à appeler sur le KeyUp de la ComboBox, comme suit

     If (e.KeyValue() >= Keys.A And e.KeyValue() <= Keys.Z) Then
            AutoSelection(Me.CBox.Text, Me.CBox)
        End If

' "" FIN REMARQUE


Sub AutoSelection(ByVal rstrValeurSaisie As String, ByVal rctlCombo As ComboBox)

        ' "" La fonction complète automatiquement la saisie en fonction de la liste du combobox

        Dim strTemp As String
        Dim i As Integer
        Dim n As Integer
        Dim intLongueur As Integer

        On Error GoTo AutoSelection_Err

        n = rctlCombo.Items.Count - 1
        intLongueur = Len(rstrValeurSaisie)

        With rctlCombo
            For i = 0 To n
                If StrComp(Microsoft.VisualBasic.Left(.Items.Item(i), intLongueur), rstrValeurSaisie, vbTextCompare) = 0 Then
                    ' "" On a trouvé un élément qui commence comme la valeur saisie
                    ' "" on le sélectionne
                    .SelectedIndex = i
                    ' "" On surligne la fin du mot
                    .SelectionStart = intLongueur
                    .SelectionLength = Len(.Text) - intLongueur
                    Exit For
                End If
            Next i
        End With

AutoSelection_End:
        Exit Sub

AutoSelection_Err:
        MsgBox(Err.Number & " : " & Err.Description)
        Resume AutoSelection_End
        Resume

    End Sub  

 Conclusion

d'autres tests sur les e.KeyValue() sont possibles mais pas traités ici.
Si vous avez des questions, vous connaissez la musique.

Merci de laisser des commentaires :)

  


 Sources de la même categorie

Source avec Zip GEST COTISATION - ASSOCIATION par MOHA555
Source avec Zip HSCROLLBAR POUR L'ARRIÈRE PLAN par 320C
Source avec Zip Source avec une capture Source .NET (Dotnet) METTRE VOTRE FORM VB.NET EN PLEINE ÉCRAN par Gabilach
RECHERCHE DANS UNE LISTE À PARTIR D'UN CHAMP TEXTE par jmeunier
Source avec Zip GESTION DES COMSOMMABLE par gboraud

Commentaires et avis

Commentaire de Dalida le 28/08/2003 13:55:04

salut

j ai eu le meme besoin.
mais en me penchant sur ton source j ai trouve un solution un peu plus simple. si ca peut vous aider...

    Private Sub cmbNom_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cmbNom.KeyUp
        If cmbNom.Items.Count &lt; 1 Then Exit Sub
'si la liste est vide on sort

        Dim intLongueur, intIndex As Integer
        intLongueur = Len(cmbNom.Text)
        intIndex = cmbNom.FindString(cmbNom.Text)

        cmbNom.SelectedIndex = intIndex
        cmbNom.Select(intLongueur, Len(cmbNom.Text) - intLongueur)
    End Sub

bonne bourre!

Commentaire de Dalida le 28/08/2003 14:01:06

OULALA!

le source de mon message precedent ne tourne pas.
il ne gere pas les noms inexistants et ne permet pas d effacer.

il sagit donc d une piste de developpement plus que d une solution...
quand je l aurai code entierement je vous en ferai part ici meme

a plus

Commentaire de Dalida le 28/08/2003 14:08:42

pour le moment ca fonctionne bien avec

    Private Sub cmbNom_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cmbNom.KeyUp
        If cmbNom.Items.Count &lt; 1 Then Exit Sub
        If e.KeyValue = System.Windows.Forms.Keys.Delete Or _
           e.KeyValue = System.Windows.Forms.Keys.Back Then
            Exit Sub
        End If

        Dim intLongueur, intIndex As Integer
        intLongueur = Len(cmbNom.Text)
        intIndex = cmbNom.FindString(cmbNom.Text)

        cmbNom.SelectedIndex = intIndex
        cmbNom.Select(intLongueur, Len(cmbNom.Text) - intLongueur)
    End Sub

Commentaire de ABL-Online le 26/05/2004 02:12:37

Franchement vous rechercher midi à 14 heures

le combobox à déjà une propriété FindItem !!!

voir ma source :

http://www.vbfrance.com/code.aspx?ID=23147

Commentaire de romit le 04/06/2006 22:01:17

DE plus, utilise des Try plutot que des On error !

Commentaire de big wallace le 23/11/2007 15:04:45 8/10

vraiment c'est un bon code, il m'a bien aider
merci

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales