Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DLL COMBOSENSE , LE COMBOBOX À SAISIE SEMI-AUTOMATIQUE PARFAIT !


Information sur la source

Description

Cliquez pour voir la capture en taille normale
Voici un control ComboBox classique mais avec l'implémentation de la technologie de la saisie semi-automatique.

Trop facile avec vb.net de faire des contrôle comme ça en quelques lignes de code quand je pense qu'en VB6 il faudrais 65465454 lignes de code non je rigole mais bcp plus ça c'est sur :)

Dans le zip la Dll avec la source, et le Projet TEST :o)


 

Source

  • Extrait du code :
  • Public Class Hst_ComboSense
  • Inherits System.Windows.Forms.ComboBox
  • Private mHstIntelliSense As Boolean = True
  • Protected Overrides Sub OnKeyUp(ByVal e As KeyEventArgs)
  • If mHstIntelliSense = True Then
  • If e.Shift = True Then
  • HstSaisieAuto(e.KeyCode, True)
  • Else
  • HstSaisieAuto(e.KeyCode, False)
  • End If
  • End If
  • End Sub
  • <Category("Behavior"), Description("Technologie Hostonet IntelliSense (Saisie semi-automatique)")> _
  • Public Property HstIntelliSense() As Boolean
  • Get
  • Return mHstIntelliSense
  • End Get
  • Set(ByVal Value As Boolean)
  • If Value.Equals(mHstIntelliSense) Then Return
  • mHstIntelliSense = Value
  • If Not DesignMode AndAlso mHstIntelliSense Then Invalidate()
  • End Set
  • End Property
  • Private Sub HstSaisieAuto(ByVal KeyPress As Keys, ByVal ShiftPressed As Boolean)
  • Dim Nbr_Choix As Integer
  • Dim LongeurFrappe As Integer
  • 'Analyse des touches relachée
  • 'Si corresponds pas à une valeur entre A et Z ainsi que 0 et 9 alors on annule la
  • 'procédure , si elle corresponds alors on continue
  • If Not ( _
  • (KeyPress >= Keys.A And KeyPress <= Keys.Z) Or _
  • (KeyPress >= Keys.NumPad0 And KeyPress <= Keys.NumPad9) Or _
  • (ShiftPressed = True And (KeyPress >= 48 And KeyPress <= 58))) _
  • Then
  • Exit Sub ' On sort de la procédure pas la bonne touche relachée
  • Else
  • ' Mybase peux être remplacer par ME qui désigne le control en lui même
  • LongeurFrappe = Len(MyBase.Text)
  • If Len(MyBase.Text) > 0 Then
  • If Not MyBase.FindString(MyBase.Text) = -1 Then
  • MyBase.Text = MyBase.Items(MyBase.FindString(MyBase.Text)).ToString
  • MyBase.SelectionStart = LongeurFrappe
  • MyBase.SelectionLength = Len(Me.Text) - LongeurFrappe
  • End If
  • End If
  • End If
  • End Sub
  • End Class
Extrait du code : 

Public Class Hst_ComboSense

    Inherits System.Windows.Forms.ComboBox

    Private mHstIntelliSense As Boolean = True

    Protected Overrides Sub OnKeyUp(ByVal e As KeyEventArgs)

        If mHstIntelliSense = True Then
            If e.Shift = True Then
                HstSaisieAuto(e.KeyCode, True)
            Else
                HstSaisieAuto(e.KeyCode, False)
            End If
        End If

    End Sub

    <Category("Behavior"), Description("Technologie Hostonet IntelliSense (Saisie semi-automatique)")> _
    Public Property HstIntelliSense() As Boolean
        Get
            Return mHstIntelliSense
        End Get
        Set(ByVal Value As Boolean)
            If Value.Equals(mHstIntelliSense) Then Return
            mHstIntelliSense = Value
            If Not DesignMode AndAlso mHstIntelliSense Then Invalidate()
        End Set
    End Property



    Private Sub HstSaisieAuto(ByVal KeyPress As Keys, ByVal ShiftPressed As Boolean)
        Dim Nbr_Choix As Integer
        Dim LongeurFrappe As Integer

        'Analyse des touches relachée 
        'Si corresponds pas à une valeur entre A et Z ainsi que 0 et 9 alors on annule la
        'procédure , si elle corresponds alors on continue

        If Not ( _
        (KeyPress >= Keys.A And KeyPress <= Keys.Z) Or _
        (KeyPress >= Keys.NumPad0 And KeyPress <= Keys.NumPad9) Or _
        (ShiftPressed = True And (KeyPress >= 48 And KeyPress <= 58))) _
        Then
            Exit Sub      ' On sort de la procédure pas la bonne touche relachée
        Else

            ' Mybase peux être remplacer par ME  qui désigne le control en lui même

            LongeurFrappe = Len(MyBase.Text)

            If Len(MyBase.Text) > 0 Then
                If Not MyBase.FindString(MyBase.Text) = -1 Then
                    MyBase.Text = MyBase.Items(MyBase.FindString(MyBase.Text)).ToString
                    MyBase.SelectionStart = LongeurFrappe
                    MyBase.SelectionLength = Len(Me.Text) - LongeurFrappe
                End If
            End If

        End If
    End Sub
End Class

Conclusion

Voilà c'est mon premier contrôle alors soyez sympa merci :)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Hostonet ComboSensor
    •   bin
      • Hostonet ComboSensor.dllTélécharger ce fichier [Réservé aux membres club]6 656 octets
      • Hostonet ComboSensor.pdbTélécharger ce fichier [Réservé aux membres club]15 872 octets
    •   obj
      •   Debug
        • temp
        • TempPE
        • Hostonet ComboSensor.dllTélécharger ce fichier [Réservé aux membres club]7 680 octets
        • Hostonet ComboSensor.pdbTélécharger ce fichier [Réservé aux membres club]15 872 octets
      •   Release
        • temp
        • TempPE
        • Hostonet ComboSensor.dllTélécharger ce fichier [Réservé aux membres club]6 656 octets
        • Hostonet_ComboSensor.Hst_ComboSense.resourcesTélécharger ce fichier [Réservé aux membres club]188 octets
    •   test
      •   Test Hostonet ComboSense
        •   HSTComboSense Test
          •   bin
            • Hostonet ComboSensor.dllTélécharger ce fichier [Réservé aux membres club]6 656 octets
            • HSTComboSense Test.exeTélécharger ce fichier [Réservé aux membres club]12 800 octets
            • HSTComboSense Test.pdbTélécharger ce fichier [Réservé aux membres club]15 872 octets
          •   obj
            •   Debug
              • temp
              • TempPE
              • HSTComboSense Test.exeTélécharger ce fichier [Réservé aux membres club]13 824 octets
              • HSTComboSense Test.pdbTélécharger ce fichier [Réservé aux membres club]15 872 octets
            •   Release
              • temp
              • TempPE
              • HSTComboSense Test.exeTélécharger ce fichier [Réservé aux membres club]12 800 octets
              • HSTComboSense_Test.Form1.resourcesTélécharger ce fichier [Réservé aux membres club]4 404 octets
          • AssemblyInfo.vbTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 044 octets
          • Form1.resxTélécharger ce fichier [Réservé aux membres club]Voir ce fichier7 584 octets
          • Form1.vbTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 110 octets
          • HSTComboSense Test.vbprojTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 741 octets
          • HSTComboSense Test.vbproj.userTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 814 octets
    • AssemblyInfo.vbTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 044 octets
    • Hostonet ComboSensor.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 491 octets
    • Hostonet ComboSensor.suoTélécharger ce fichier [Réservé aux membres club]8 704 octets
    • Hostonet ComboSensor.vbprojTélécharger ce fichier [Réservé aux membres club]Voir ce fichier3 891 octets
    • Hostonet ComboSensor.vbproj.userTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 813 octets
    • HstComboSense.resxTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 733 octets
    • HstComboSense.vbTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 179 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de chris81 le 26/05/2004 13:28:56

encore plus court
tu met combobox.dropdown = true

signaler à un administrateur
Commentaire de ABL-Online le 26/05/2004 14:23:52

rien a voir, le but de ma source n'est pas de faire défiller les éléments dans une liste en dessous !

signaler à un administrateur
Commentaire de oedipe78 le 28/05/2004 10:50:26

merci,
ca m'a permis de comprendre rapidement comment traiter les touches que les personnes appuie :o)
Dommage qu'il n'y a pas la meme chose pour les mouvements de la souris!! :-)

signaler à un administrateur
Commentaire de IApplication le 04/04/2005 11:41:45

Une question idiote: pourquoi vous n'utilisez pas l'option AutoCompletition déjà présente dans le contrôle ComboBox ?

signaler à un administrateur
Commentaire de ABL-Online le 04/04/2005 11:49:04

Parcequ'elle n'existe pas tout simplement !!!

Peut-être a tu la version de visualStudio 2005 ???

signaler à un administrateur
Commentaire de ricomiracle le 24/05/2005 09:46:11

Merci pour ta source...
Moi je cherche à réaliser avec un contrôle combobox une sorte de saisie semi-auto pointée. Je m'explique à la manière de visual studio, lorsque je tape la touche '.' la liste se déroule si le mot avant le point est reconnu comme ayant des attributs. Vous voyez ce que je veut dire...?
Il faut donc déplacer le combo à la suite du point (ou en dessous du mot taper)
Si il y en a qui on déja vu ça ou bien qui ont des idées, elles sont les bienvenues... Meric
Et l'option AutoCompletition existe ou pas alors?

signaler à un administrateur
Commentaire de capuccino_fr le 28/10/2005 09:17:50

nickel ;) 8/10

signaler à un administrateur
Commentaire de Nonos le 11/12/2005 23:14:55

GOTO --> .NET2
AutoCompleteMode (Suggest)

signaler à un administrateur
Commentaire de rapatonilabo le 19/04/2006 20:01:23

Bonjour à tous!

Une petite question idiote de novice en la matière:
Comment est ce que je peux utiliser ce control combobox sur mon classeur excel????? Quels fichiers utiliser parmis la multitude que l'on trouve dans le fichier .zip???
J'attends avec impatience votre réponse ô maitres de la programmation car ce code m'intéresse vraiment bcp!!!

Merci

signaler à un administrateur
Commentaire de Nico52 le 14/09/2008 14:15:32

Faux en VB6 C'est pas plus long !!

    Static NoSelectText As String   ' texte tapé par l'utilisateur
    Dim ia As Long                   ' compteur de boucle
    Const RGBerror = 255            ' couleur du fond en cas d'erreur
    
    
    With TxtClient '<== SEULE LIGNE A MODIFIER
      
        ' touche que l'on ne doit pas gérer dans cette procedure
        If KeyCode = vbKeyUp Then Exit Sub      ' utilisé par VB
        If KeyCode = vbKeyDown Then Exit Sub    ' utilisé par vb
        If KeyCode = vbKeyLeft Then Exit Sub    ' pour se déplacer
        If KeyCode = vbKeyRight Then Exit Sub   ' pour se déplacer
        
        ' action spéciale pour la touche BACK
        If KeyCode <> vbKeyBack Then
        NoSelectText = Mid(.Text, 1, Len(.Text) - .SelLength)
        Else
            If NoSelectText <> "" Then
            NoSelectText = Mid(NoSelectText, 1, Len(NoSelectText) - 1)
            End If
        End If
        
        ' recherche de la correspondance
        For ia = 0 To .ListCount - 1
            If UCase(NoSelectText) = UCase(Mid(.List(ia), 1, Len(NoSelectText))) Then
                .ListIndex = ia
                Exit For
            End If
        Next
        
        ' selection de la partie que l'on a rajouté automatiquement
        .SelStart = Len(NoSelectText)
        .SelLength = Len(.Text)
    End With

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,702 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.