Quando una casella di testo WinForms C # viene attivata, voglio che si comporti come la barra degli indirizzi del browser.
Per vedere cosa intendo, fai clic sulla barra degli indirizzi del tuo browser web. Noterai il seguente comportamento:
- Fare clic nella casella di testo per selezionare tutto il testo se la casella di testo non era precedentemente focalizzata.
- Il mouse verso il basso e trascinare nella casella di testo dovrebbe selezionare solo il testo che ho evidenziato con il mouse.
- Se la casella di testo è già attiva, facendo clic su non si seleziona tutto il testo.
- Mettere a fuoco la casella di testo a livello di codice o tramite la tabulazione della tastiera dovrebbe selezionare tutto il testo.
Voglio fare esattamente questo in WinForms.
AVVISO DI PISTOLA PIÙ VELOCE: leggi quanto segue prima di rispondere! Grazie ragazzi. :-)
Chiamare .SelectAll () durante gli eventi .Enter o .GotFocus non funzionerà perché se l'utente fa clic sulla casella di testo, il cursore verrà posizionato dove ha fatto clic, deselezionando così tutto il testo.
La chiamata a .SelectAll () durante l'evento .Click non funzionerà perché l'utente non sarà in grado di selezionare alcun testo con il mouse; la chiamata .SelectAll () continuerà a sovrascrivere la selezione del testo dell'utente.
Chiamare BeginInvoke ((Action) textbox.SelectAll) in focus / enter event enter non funziona perché infrange la regola # 2 sopra, continuerà a sovrascrivere la selezione dell'utente in focus.