Dll combosense , le combobox à saisie semi-automatique parfait !

Description

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 / Exemple :


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 :)

Codes Sources

A voir également

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.