Laden...

RichTextBox mit Nachschlage-Funktionalität

Letzter Beitrag vor 16 Jahren 6 Posts 4.999 Views
RichTextBox mit Nachschlage-Funktionalität

Beschreibung:
Eine RichTextBox, die es erlaubt, in einer zugrundeliegenden Tabelle die eingegebenen Textelemente zu suchen und je nachdem, ob sie gefunden wurden oder nicht, unterschiedlich zu formatieren.

Verwendungszweck
Hintergrund ist, dass man manchmal in einem Eingabefeld Kürzel (für bspw. Mitarbeiter, Abteilungen, Städte, etc.) eingeben möchte.
Man kennt das so ähnlich vom Mailadressfeld einer neuen Nachricht in Outlook.

Damit der Anwender sofort sieht, ob seine Angaben gültig sind, schlägt die RichTextBox diese Elemente nach und formatiert sie (Bild 1) wie vom Entwickler im Designer eingestellt (Bild 2).

Hinweis:
Der Code für die Formatierung stammt aus http://geekswithblogs.net/pvidler/archive/2003/10/15/188.aspx; ich habe das nur ein bisschen für den aktuelle Zweck gekapselt

Schlagwörter: RichTextBox, RichTextBox Formatierung, Formatierung, Nachschlagen

So sieht es für den Entwickler aus:

...und hier ist dieKomponente samt Testprojekt und TestDaten.

Viel Spass damit

Ron

PS:
Es gibt ein noch etwas jungfräuliches Property namens ResolveAsHyperlink.
Idee ist, dass aufgelöste Elemente mit einem Handzeiger versehen werden. Das flackert aber leider ziemlich.
Also wer von Euch Zeit und Lust hat... 😉

Hallo citizen.ron,

nette Komponente. Vor allem das rote Unterstreichen hätte mich in den nächsten Tagen auch interessiert 🙂.

Ich habe allerdings ein doch recht großes Flackern beobachtet, obwohl Du mittels der Win-API das Zeichnen verhinderst. Ist da evtl. bei der Implementation noch was falsch oder ist das korrekt so?

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

hi fabian,

flackert es immer?
Auch bei ResolveASHyperlink = false?

Flackern tut es bei mir nur, wenn ich ResolveASHyperlink auf True setze (was ich im Augenblick nicht tue, da die Logik für den Aufruf eines aufgelösten Elements auch noch nicht implementiert ist, sondeern nur die Cursor-Anzeige als Hand)

Ich glaube eher, dass OnMouseMove nicht die richtige Methode ist; vielleicht muss man auch hier tiefer in die WINAPI einsteigen.

Aber dazu werde ich selbst in den nächsten zwei Wochen keine Zeit haben.

Gruß
Ron

Hallo citizen.ron,

habe es gerade noch mal ausprobiert. Es flackert immer. ResolveAsHyperlink ist per default auf false.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de