vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
ADComboBox SelectedItem setzten klappt nicht. 
Autor: MarcinD
Datum: 30.01.06 09:05

Hallo,

ich habe mal das Steuerelement ADCombobox im Netz gefunden und eingebaut.
Läuft recht gut.
Habe nur das problem, dass wenn ich mit der Tab Taste das Feld verlasse das SelectedItem nicht gesetzt wird.
Wenn die CBOBox aufgeklappt wird und mit dem Cursor draufgeklickt wrid, dann wird das SelectedItem richtig gesetzt.
Was müßte ich tun, damit es auch mit Tab funktioniert?

Hier mal der Code:

Imports System.Windows.Forms ' Notwendig, wenn auf andere Steuerelemente 
' zugegriffen werden soll
Imports System.Drawing  ' Wichtig, wenn eigene Grafikausgaben vorgenommen 
' werden müssen
Imports System.ComponentModel ' Wichtig, um auf alle notwendigen Attribute 
' zugreifen zu können
 
Public Class ADComboBox
    Inherits ComboBox
 
    Private myAutoComplete As Boolean
    Private mySenderIsThis As Boolean
 
    Sub New()
        myAutoComplete = True
    End Sub
 
    'Wird aufgerufen, sobald irgendeine Veränderung im Eingabefeld vorgenommen 
    ' wird
    '(ganz gleich, ob programmtechnisch oder durch den Anwender)
    Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
        'Dieses Flag wird benötigt, damit eine Eingabebereichsveränderung, die
        'programmtechisch durch das Steuerelement selbst vorgenommen wird, das 
        ' Ereignis
        'nicht erneut auslöst, und das Programm in einer Endlosschleife hängen 
        ' bleibt.
        If Not mySenderIsThis Then
            'Verhindern, dass das Ereignis durch eigene Manipulation erneut 
            ' ausgelöst wird
            mySenderIsThis = True
            'Auto-Vervollständigen durchführen
            PerfAutoCompletion()
            mySenderIsThis = False
        End If
        'Basis-Funktion aufrufen nicht vergessen!
        MyBase.OnTextChanged(e)
    End Sub
 
    Private Sub PerfAutoCompletion()
 
        'Nur wenn AutoComplete eingeschaltet ist überhaupt etwas machen
        If AutoComplete Then
            'Zwischenspeichern, damit die Originaleingabe erhalten bleibt
            Dim locTemp As String = Me.Text
            'Index des Eintrags finden, dass der bisherigen Texteingabe 
            ' entspricht
            Dim locIndex As Integer = Me.FindString(locTemp)
            If locIndex > -1 Then
                'Eintrag gefunden, zum einfacheren Handling in Variable kopieren
                Dim locFoundEntry As String = Me.Items(locIndex).ToString
                If locIndex > -1 Then
                    'Eintrag ins Eingabefeld kopieren
                    Me.Text = locFoundEntry
                    'den noch nicht eingegebenen Teil markieren, damit
                    'er einfach überschrieben werden kann
                    Me.Select(locTemp.Length, locFoundEntry.Length - _
                      locTemp.Length)
                End If
            End If
        End If
    End Sub
 
    'Wird ausgelöst, wenn eine Taste gedrückt wird
    Protected Overrides Sub OnKeyDown(ByVal e As _
      System.Windows.Forms.KeyEventArgs)
        'Cursor-nach-unten, dann...
        If e.KeyCode = Keys.Down Then
            If Not Me.DroppedDown Then
                '...Dropdown-Bereich öffnen
                Me.DroppedDown = True
                e.Handled = True
            End If
        Else
            'Wenn Delete oder Backspace gedrückt wird, dann keine 
            ' Modifizierungen vornehmen
            mySenderIsThis = (e.KeyCode = Keys.Delete) Or (e.KeyCode = _
              Keys.Back)
        End If
        MyBase.OnKeyDown(e)
    End Sub
 
    'Die einzige neue Eigenschaft:
    <Description("Bestimmt oder ermittelt, ob die Auto-Ergänzen-Funktion" & _
      "verwendet wird."), _
    Category("Verhalten"), _
    DefaultValue(GetType(Boolean), "True"), _
    Browsable(True)> _
    Public Property AutoComplete() As Boolean
        Get
            Return myAutoComplete
        End Get
        Set(ByVal Value As Boolean)
            myAutoComplete = Value
        End Set
    End Property
End Class
Wäre klasse, wenn mir jemand helfen könnte.

Gru?

Martin

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ADComboBox SelectedItem setzten klappt nicht.885MarcinD30.01.06 09:05

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel