2009-03-15 11 views
8

Wie werde ich über eine Auswahländerung in einem Textfeld in .NET 2.0 benachrichtigt? Ich konnte kein SelectionChanged-Ereignis oder keine OnSelectionChanged-Methode finden. Was ist die beste Problemumgehung dafür (natürlich ohne PInvoke)?Windows Forms: SelectionChanged-Ereignis für TextBox-Klasse

+0

Was meinst du "Auswahl geändert"? Meinst du, wenn ein Benutzer den Cursor von einem Textfeld zum anderen bewegt? – Galilyou

+1

Ich denke, er meint eine Auswahl des Textes in der Box. – Hamid

+0

Ich meine, dass der Benutzer geändert hat, was in dem Textfeld ausgewählt ist. Angenommen, das Textfeld enthält "Quick Brown Fox" mit "Braun" ausgewählt und der Benutzer wählt stattdessen "Fuchs", muss ich benachrichtigt werden. –

Antwort

5

Sie könnten eine RichTextBox verwenden und Multiline auf false setzen. Es hat eine OnSelectionChanged.

+0

Eine großartige Idee. Irgendwelche Nachteile? –

+0

Ich weiß es nicht von ganz oben. Möglicherweise müssen Sie ein wenig optimieren, um es so dumm wie eine TextBox zu bekommen;) – Hamid

+2

@Vulcan Eager: RichTextBox hat die lästige Funktion der Änderung aller '\ r \ n' Zeilenenden in der' Text' -Eigenschaft zu '\ n' sobald es sichtbar wird. –

1

Nun, ich denke, this kann helfen! Sie müssen RichTextBox immer noch verwenden.

0

Sie können TextBox auch verwenden.

eine Funktion schreiben GetMyPosition() und

  • Textchanged() in den Ereignissen
  • Mouseclick()
  • KeyUp() setzen (In KeyDown() wird die Position nicht geändert)

Wenn Sie die highliting eines Textes benachrichtigen möchten, müssen Sie auch verwenden - MouseHover()