2011-10-13 15 views
10

Desidero ottenere la posizione corrente del cursore da un TextBox WPF. Se il abhishek contiene il testo abhishek e il cursore lampeggia dopo abhi, allora voglio quell'indice, in modo che dopo aver cancellato programmaticamente lo e assegnando un altro o lo stesso testo a livello di codice, voglio far lampeggiare il cursore subito dopo 4 caratteri.come ottenere e impostare la posizione corrente del cursore della casella di testo WPF

Ho provato posizione del cursore ottenere in questo modo,

_tempFuncName = txtFunctionName.Text; 
_cursorPosition = txtFunctionName.SelectionStart; 
_selectionLength = txtFunctionName.SelectionLength; 

E arretrato in una fase successiva di altri eventi come questo,

txtFunctionName.Text = _tempFuncName; 
txtFunctionName.SelectionStart = _cursorPosition; 
txtFunctionName.SelectionLength = _selectionLength; 

sottolineano Qui le variabili sono variabili a livello di pagina.

Questo codice non funziona. C'è qualche altro approccio?

risposta

4

È sufficiente aggiungere una riga per impostare lo stato attivo sulla casella di testo, altrimenti tutto funziona correttamente.

txtFunctionName.Text = _tempFuncName; 
txtFunctionName.SelectionStart = _cursorPosition; 
txtFunctionName.SelectionLength = _selectionLength ; 
txtFunctionName.Focus(); 
9

Si può giocare con proprietà caretIndex di una casella di testo

//You can set this property on some event 
NumberOfDigits.CaretIndex = textbox.Text.Length; 
+0

Questa risposta corrisponde alla risposta nel titolo OP, che è quello che stavo cercando. – Mishax

0
txtFunctionName.Text = _tempFuncName; 
txtFunctionName.SelectionStart = _cursorPosition; 
txtFunctionName.SelectionLength = _selectionLength ; 

queste affermazioni sono sufficienti a fare la cosa req. stavo sbagliando nella scelta dell'evento per scrivere il codice. Grazie a tutti.

Problemi correlati