Laden...

Eine Art IntelliSense nachbauen

Letzter Beitrag vor 7 Jahren 5 Posts 3.856 Views
Eine Art IntelliSense nachbauen

Hallo,
ich muss für unser System eine Art IntelliSense bauen. Bei Eingabe in eine TextBox soll z.B. nach einer passenden E-Mail gesucht werden, die Ergebnisse in einer Liste anzeigt.
Und zwar so ähnlich wie in der Auswahlliste, die sich im VS öffnet.

Meine Frage ist eigtl nur, mit welchen Controls ich das am Besten umsetze.
Zurzeit versuche ich es mit einer WinForm die sich direkt nach einer Eingabe unter der TextBox öffnet.
In dieser Form sind dann normale Items enthalten (Image und daneben Text).
Diese Items werden in einem FlowLayoutPanel gehostet.
Soweit alles wunderbar, die Items werden bei MouseOver blau untermalt, usw..

Nur das Navigieren mit den Pfeiltasten müsste ich noch irgendwie umsetzen, ohne dabei den Fokus der TextBox abzugeben.

Alles recht mühsam, deswegen meine Frage, ob das vllt nicht mit anderen Controls und Ansätzen besser zu lösen ist?!

Ich hab sowas auch noch nicht gemacht, aber du könntest dir ja mal vielleicht anschauen, wie es #develop macht. Der Source ist ja frei. Ich glaub, das ganze liegt auch direkt im TextEditor Control (frag mich bloß nicht wie das heißt 🙂), also müsste man vielleicht erst gar nicht großartig viel rumsuchen.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

Und wie wär es mit einer ComboBox? Ab .NET 2.0 hat es ja auch (endlich) AutoComplete-Modi.

Gruß
dN!3L

Hallo nochmal,

also mit einer ComboBox komme ich nicht weit. Es muss schon was umfangreicheres sein.
Ich stehe gerade vor dem Problem, wie ich das mache, dass einmal die TextBox und die Item Auswahl gleichzeitig Focus haben. So wie in VS der Editor und die IntelliSense Auswahlliste. Man kann entweder per Pfeiltaste in der Liste scrollen oder einfach weiter tippen. So etwas geht bei einem Control eigtl nur wenn dieses fokusiert ist.

Weiß einer etwas dazu?
Gibt es Anleitungen, ähnliche Ansätze?

Edit: OK, ich denke da habe ich etwas Gutes

Ich habe hier mal ein Projekt erstellt, mit dem das geht.

AvalonEditTest.rar

Der Name sagt schon alles.

Ich habe mehrere Projekte genommen und diese in eine Solution gepackt.

Wichtig war hierbei:

1.) Den AvalonEdit auf einem normalen Windows-Forms Projekt zum Laufen zu bringen.
2.) Intellisense einzubauen, so weit wie möglich wie in Visual Studio.
3.) Das ganze noch als Komponente umbauen zu können, so dass es in anderen Projekten benutzt werden könnte.

1.) und 2.) ist komplett implementiert.
und 3.) sollte einfach für einen einigermassen geübten Software-Entwickler sein.

Einfach runterladen und entpacken.

Und dann die AvalonEditTest.exe im Ordner AvalonEditTest ausführen.
Und dann den einzigen vorhandenen Toolbar Button drücken.
Dieses Beispiel funktioniert nur dann.

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.