WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Listbox Autosuche abstellen

 

benhuytom
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2013, 10:59     Titel: Listbox Autosuche abstellen
  Antworten mit Zitat      
Hey Leute,

ich hab ein kleines Problem, welches mich gerade etwas verzweifeln lässt.
Ich hab eine Listbox, in der man Sachen auswählen kann. Um nicht die Liste mit 5000 Einträgen per Hand zu durchlaufen, hab ich noch ein Suchfeld drüber gebastelt, dass mir dann "die Liste kürzt."
Dieses Suchfeld wird durch diese Funktion
Code:
function figure1_KeyPressFcn(hObject, eventdata, handles)

befüllt und ausgeführt.

Das bringt aber ein Problem mit sich:
Wenn ich mich in der Listbox befinde, weil ich etwas ausgewählt habe und jetzt etwas tippe, sucht einmal mein Suchfeld danach in der Liste und zum anderen die Listbox an sich.
Die KeyPressFcn von der Listbox habe ich auch so überschrieben, dass dann das Suchfeld aufgerufen wird. Aber die "Suche" der Listbox wird trotzdem noch ausgeführt.
Gibt es da eine Möglichkeit, dass ich diese Suche von der Listbox ausschalten kann?

Wäre echt cool, wenn ihr da wisst, wie das geht. Ich dachte erst, es wäre etwas in der Properties oder so, aber dazu hab ich nichts passendes gefunden.

Mit freundlichen Grüßen,

Ben

PS: Falls nicht ganz klar ist, was ich mit Suche in der Listbox meine, führe ich es nochmal kurz auf:
Wenn man aktiv in der Listbox sich befindet, weil man z.B. etwas ausgewählt hat oder so, dann kann man einfach etwas eintippen. Z.B: "abc" und schon befindet man sich an der ersten Stelle in Liste, wo "abc" die Anfangsbuchstaben eines Wortes sind.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 05.08.2013, 12:01     Titel: Re: Listbox Autosuche abstellen
  Antworten mit Zitat      
Hallo benhuytom,

Die automatische Suche in der Listbox is aktiv, wenn das UICONTROL den Fokus besitzt. Nun kann man zwar verhindern, dass das UICONTROL den Fokus erhält ('Enable' auf 'inactive' setzen), aber dann kann man die Listbox nicht mehr aktiv verwenden. Andererseits würde ich als Benutzer nicht erwarten, dass Aktionen im Such-Feld passieren, während die List-Box aktiv ist. Deswegen würde ich die KeyPressFcn der Listbox lahmlegen oder als Alternative die Listbox bei Keyboard-Eingabe inaktiv schalten und den Fokus an das Suchfeld weitergeben:
Code:
uicontrol(handles.SuchFeldHandle);

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
benhuytom
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 19.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2013, 13:45     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke erstmal für die fixe Antwort.
Man muss in der Listbox leider Sachen auswählen können, deswegen kann ich sie leider nicht inactive schalten.
Die Nutzer, die das im endeffekt verwenden sind es leider gewohnt, dass sie bei einer Tastatureingabe ein Suchfeld haben, was dann aufgefüllt wird und dementsprechend eine Suche ausgeführt wird.

Ich hab es jetzt versucht, wie du gesagt hast. Also das Feld inactive gemacht und nach meinem Ausführen es wieder Active geschaltet.

Das funktioniert soweit ganz gut. Trotzdem hab ich noch ein kleines Problem dabei. Es kommt vor, dass dann Trotzdem die Listbox einfach verschwindet.
Und ich kann nicht mal sagen wo genau in meinem Code, da im degbug-mode ich den Fehler nicht reprduzieren kann.

Update:
Ich hab herausgefunden woran es liegt, das Suchen wird trotzdem ausgeführt von der Listbox und es besteht immernoch das gleiche Problem. Selbst wenn ich die Listbox beim als erstes beim Callback auf inactive setze.
Das muss doch iregndwo implementiert sein?!

Grüße

Ben
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.