vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Textbox autocomplete 
Autor: Theo_kkv
Datum: 12.07.21 16:32

Hallo,
ich habe versucht mittels "autocomplete" an einer Textbox entspr. Einträge vorgeschlagen zu bekommen.
Mein bisheriger Code funktioniert auch wie gewünscht.

Private liste As AutoCompleteStringCollection
 liste = New AutoCompleteStringCollection
                    Dim datei As String = Application.StartupPath + "\" + _
                      "Source.txt"
                    If File.Exists(datei) = True Then
                        liste.AddRange(File.ReadAllLines(datei))
                    End If
 With TextBox1
            .AutoCompleteCustomSource = liste
            .AutoCompleteSource = AutoCompleteSource.CustomSource
            .AutoCompleteMode = AutoCompleteMode.SuggestAppend
        End With
Das Problem ist nun, sofern neue Einträge in 'liste' kommen, diese in die Textdatei zurück zu schreiben. Muss dazu die AutoCompleteStringCollection umgewandelt werden bzw. für ein zeilenweises zurück schreiben iterativ durchlaufen werden?

Für Hinweis dankt vorab
Tom
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox autocomplete 
Autor: HenryV
Datum: 12.07.21 18:05

Ich würde es wohl in etwa so lösen.
Dim MyList As List(Of String) = TextBox1.AutoCompleteCustomSource.Cast(Of _
  String).ToList
MyList.Sort()
IO.File.WriteAllText("Source.txt", String.Join(Environment.NewLine, MyList))
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox autocomplete 
Autor: Theo_kkv
Datum: 12.07.21 20:13

Vielen Dank für den Codeansatz. Ich habe festgestellt, dass beim auswählen eines bereits vorhandenen Eintrages dieser wiederum in die AutoCompleteStringCollection aufgenommen und damit doppelt bzw. mehrfach vorkommen kann. Gibt es eine Möglichkeit, dies zu unterbinden?

Grüße
Tom
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox autocomplete 
Autor: HenryV
Datum: 13.07.21 08:38

Du kannst, bevor du den neuen Wert der Autocomplete-List hinzufügst, abfragen, ob dieser schon vorhanden ist.
If Not TextBox1.AutoCompleteCustomSource.Contains(TextBox1.Text) Then
    TextBox1.AutoCompleteCustomSource.Add(TextBox1.Text)
End If
Oder du entfernst die doppelten Einträge aus der Liste.
MyList.Distinct()
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textbox autocomplete 
Autor: Theo_kkv
Datum: 13.07.21 09:34

Hallo
und nochmals Danke HenryV. Nur mit
MyList.Distinct()
klappte es noch nicht. Jedoch mit diesem Code werden die Mehrfacheinträge entfernt.
MyList = MyList.Distinct().ToList
Danke und Grüße
Tom
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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