Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Wie kann ich die Reaktion auf Eingabe in ComboBox/TextBox verzögern?
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 29
Herkunft: Berlin

Themenstarter:

Wie kann ich die Reaktion auf Eingabe in ComboBox/TextBox verzögern?

beantworten | zitieren | melden

hai Leute,

ich habe eine Liste/ein Array mit reichlich Einträgen. Diese Liste möchte ich nach einem Text durchsuchen, den ich in die ComboBox/TextBox eingebe.
Über das Event TextChanged startet üblicherweise die Suche. Nun möchte ich aber eben diesen Start verzögern, wenn ich mehrere Zeichen kurz nacheinander in die TextBox eingebe. Bei Windows funktioniert das gut, in meinem Programm bekomm' ich's nicht hin, da ja jede Änderung des Textes eine neue Suche in einer neuen Instanz (?) startet.

bei meiner Internetsuche hat mir der im Titel genannte Suchbegriff (oder ähnliches) nicht geholfen. Habt ihr 'nen Tipp, wonach ich suchen muss? Den passenden Code bastele ich mir dann schon.
Ich weiß eben nur nicht, wie und wo ich ansetzen muss.

Danke im Voraus, viele Grüße, ein schönes neues Jahr an alle - ...lypô
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10074

beantworten | zitieren | melden

In deutsch wirst du in der Programmierung auch wenig finden.

Erstelle in der Form einen WindowsForms Timer .
Wenn TextChanged ausgelöst wird stoppe und starte ihn.
bei Ablauf mach deine Suche.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5966
Herkunft: Leipzig

beantworten | zitieren | melden

Wenn du System.Reactive.Linq verwendest, kannst du die einfach die Events als Observable abonnieren und die Observable.Throttle-Methode verwenden. In der Doku gibt es ein Beispiel.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
Platoon
myCSharp.de - Member



Dabei seit:
Beiträge: 46
Herkunft: NRW

beantworten | zitieren | melden

Auch wenn schon ein paar Tage alt.....

....aber besteht die Notwendigkeit direkt ab dem ersten Zeichen zu filtern?

Sonst könntest du im TextChanged Event entsprechend auf die Länge des eingegebenen Strings prüfen und
erst dann das aufrufen, wenn die Minimallänge überschritten wurde.

Ansonsten gibt's da ein Property bei der ComboBox (AutoComplete): ComboBox.AutoCompleteMode Eigenschaft

Das könntest du dir mal ansehen.
.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....
private Nachricht | Beiträge des Benutzers