2009-03-15 9 views
8

Come si ottiene una notifica di una modifica di selezione in una casella di testo in .NET 2.0? Non è stato possibile trovare un evento SelectionChanged o un metodo OnSelectionChanged. Qual è la soluzione migliore per questo (senza dover chiamare PInvoke, ovviamente)?Windows Form: evento SelectionChanged per la classe TextBox

+0

Cosa intendi "Selezione modificata"? Intendi quando un utente sposta il cursore da una casella di testo a un'altra? – Galilyou

+1

Penso che intenda una selezione del testo dentro la scatola. – Hamid

+0

Voglio dire che l'utente ha cambiato ciò che viene selezionato all'interno della casella di testo. Supponendo che la casella di testo contenga "quick brown fox" con "brown" selezionata e l'utente selezioni "fox", invece, devo essere avvisato. –

risposta

5

È possibile utilizzare un RichTextBox e impostare Multiline su falso. Ha un OnSelectionChanged.

+0

Un'ottima idea. Eventuali svantaggi? –

+0

Non lo so dalla mia testa. Potrebbe essere necessario un piccolo ritocco per ottenerlo stupido come un TextBox;) – Hamid

+2

@Vulcan Eager: RichTextBox ha la caratteristica fastidiosa di cambiare tutte le terminazioni di riga '\ r \ n' nella proprietà' Testo' a '\ n' non appena diventa visibile. –

1

Bene, immagino che this possa essere d'aiuto! È necessario utilizzare ancora RichTextBox.

0

È anche possibile utilizzare TextBox.

Scrivi una funktion GetMyPosition() e mettere negli eventi

  • TextChanged()
  • MouseClick()
  • TastoSu() (In TastoGiù() la posizione non è cambiata)

Quando si desidera informare il highliting di un testo, si hanno anche per usare - MouseHover()

Problemi correlati